背景  

    最近在用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

 

转载于:https://www.cnblogs.com/gerry2019/p/11158066.html

Logo

前往低代码交流专区

更多推荐