axios请求无法携带cookie
背景
最近在用vue重构公司公司AngularJS 1.X项目,老项目身份认证采用的cookie,前端ajax库采用是angularJS的$http/$resource服务,新版采用的是axios,但是发现前端http响应头中少了Set-Cookie属性,同时在浏览器中查询不到cookie信息,服务端也接收不到cookie信息。postman请求正常,使用axios请求不正常,如下图所示:
axios:
postman:
原因:
1、为什么http响应头中没有set-cookie属性值?
这个是axios已知的问题,我们都知道,cookie是服务端写进去的,只要这一步没有错,理应数据都会携带到客户端,只是axios隐藏了这一部分信息。在github上搜上搜Set-Cookie有很多类似情况,如下:
2、请求如何携带cookie
axios默认跨域请求不使用凭证,只需要设置axios.defaults.withCredentials = true;即可。withCredentials属性主要功能是指定跨域的请求是否应该使用证书(如cookie或授权头header)
参考链接如下:
aixos: https://github.com/axios/axios/issues/953
api:https://www.kancloud.cn/yunye/axios/234845
本文为原创文章,如有转载,烦请注明出处,谢谢!