发送axios获取具有授权标头的请求

时间:2017-07-26 02:07:35

标签: vue.js axios

我尝试使用vue.js发送axios get请求,并且在没有必要发送标头时它工作得很好。但是,当需要发送授权jwt时,我收到了CORS错误:“对预检请求的响应未通过访问控制检查:请求的资源上没有'Access-Control-Allow-Origin'标头。”我不知道为什么会出现此问题,因为响应中存在Access-Control-Allow-Origin:'*'标头。我的代码如下:

axios.get(url, {
  headers: {
    'Authorization': 'Bearer TOKEN'
  }
})
.then(function (response) {
  console.log(response.data)
})

最奇怪的是当我在标题上使用querystring.stringify或JSON.stringify时,我没有得到错误403(禁止),但只是错误401 - 未经授权。我尝试使用变量和令牌本身,但它不起作用。

我尝试发送帖子请求以获取包含所需数据的网络令牌 - 用户名为密码并且有效。我能够获得令牌。

我在最后两天做了一大堆研究,我找到了不同类型的请求结构和配置,我尝试了所有这些,但没有一个是有效的。有没有办法检查请求是否与标头一起发送?还有其他问题吗?如果有人可以提供帮助,我将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

我认为您应该将此代码添加到bootstrap.js(或定义axios的位置):

window.axios = require('axios'); // I think its already added

window.axios.defaults.headers.common = {
    'X-Requested-With': 'XMLHttpRequest'
};

你没有提到,但我猜你使用laravel或其他框架,什么是免受csrf攻击,这就是为什么你需要将生成的令牌添加到你的ajax请求头。