axios 设置headers.Authorization都成功了,但是请求头还是没有,这是为什么?
下面是我的拦截器:
//Axios请求拦截器,随着业务的复杂,Axios层的使用将会越来越复杂,写个精简版的就行了。
axios.interceptors.request.use(config => {
let token = store.state.token;
if (token) { // 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.Authorization = token;
console.log('interceptors config=',config)
}
return config
}, error => {
return Promise.reject(error)
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
已经解决了,我还在想为什么postman可以访问,源来postman不存在跨域的问题,所以没问题,所以只要后台加上跨域和放开Authorization权限就OK了,
参考地址:
你第二张截图是以OPTIONS请求发过去后端的,OPTIONS请求肯定没有你这个headers.Authorization, 并且你这个请求已经返回了一个401状态值了。
OPTIONS用来请求时的预检,用以判断实际发送的请求是否安全(因为你请求头携带了Authorization),所以后端得允许
这个请求通过才能有下一步的请求的。
解决方法: 后端接口允许这个OPTIONS请求通过,通过后你就发现前端同一个请求发送了两次, 在第二条请求里你可以发现你的Authorization已经显示你面前了。
这篇文章和两条回答对我的问题帮助极大,也解决了我纠结好几天的问题.谢谢你们!
我有差不多的问题,我的报302,后台拿不到headers中的信息
不知道为什么
楼主怎么解决的啊
axios可以配置默认Authorization
1.我的是因为请求头与后端跨域处理拦截器允许的请求头对不上。
option请求:https://github.com/yuyumyself/front-end/blob/master/%E8%B7%A8%E5%9F%9F/option%E8%AF%B7%E6%B1%82.txt
跨域后端代码:https://github.com/yuyumyself/front-end/blob/master/%E8%B7%A8%E5%9F%9F/CorsFilter.java
请问老哥最后怎么解决了,修改了哪些代码,我看你上面的不是很懂
楼主怎么解决了,求分享