我尝试使用 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 - 未经授权。我尝试使用变量和令牌本身,但它不起作用。
我尝试发送一个帖子请求,以获得包含所需数据的网络令牌 - 用户名和密码,并且它有效。我能够获得令牌。
过去两天我对此进行了大量研究,发现了不同类型的请求结构和配置,我尝试了所有这些,但没有一个是有效的。有没有办法检查请求是否带有标头发送?还有其他问题吗?如果有人可以提供帮助,我将不胜感激。谢谢。
我认为你应该将此代码添加到bootstrap.js
(或者定义 axios 的地方):
window.axios = require('axios'); // I think its already added
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest'
};
你没有提到,但我猜你使用 laravel 或其他框架,什么是受到 csrf 攻击的保护,这就是为什么你需要将生成的令牌添加到你的 ajax 请求标头。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)