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