如何将Axios标头设置为实例(不是全局)

时间:2018-06-16 04:54:52

标签: reactjs google-api axios request-headers

我尝试使用axios向Google Books Api发送获取请求。 如果未设置Authorization标头,则它可以正常工作。 但是,在我登录到我的应用并将授权标头设置为令牌后,Google Api会以。

响应
errors:[{domain: "global", reason: "authError", message: "Invalid Credentials", locationType: "header",…}]
message:"Invalid Credentials"

对不起,我对编程还很陌生,我只是想知道绕过这个错误的最佳方法。我尝试将Authorization标头设置为它自己的实例,而不是全局设置,但在我的React应用程序中的动作调用中找不到办法。

请提前帮助和感谢!

3 个答案:

答案 0 :(得分:1)

要在get请求中使用axios在标头中设置授权令牌,您可以尝试以下代码:

const AuthStr = 'Bearer '.concat(USER_TOKEN);
    axios.get(URL, { headers: { Authorization: AuthStr } }).then(response => {
            console.log(response.data);
          })
          .catch((error) => {
            console.log('error: ' + error);
          });

答案 1 :(得分:1)

您可以尝试这样

//设置标题

var header = {
               'Content-Type': 'application/json',
               'Authorization':'Bearer '.concat(USER_TOKEN)
            }

axios.get(URL, header)
 .then(response => {
     console.log(JSON.stringify(response));
  })
 .catch((error) => {
     console.log('error ' + error);
  });

答案 2 :(得分:0)

谢谢你们的帮助!由于我在客户端设置jwt的方式,它们对我不起作用。

下面的代码最终为我工作,因为我只需要覆盖全局授权标头。

import axios from 'axios';
const axiosInstance = axios.create({
  baseURL: url
});

axiosInstance.defaults.headers.common = '';

export default axiosInstance;