尽管已经登录,但是请求接口返回状态码:202,msg: '未登录',如下图所示;
如果需要跨域 AJAX 请求发送 Cookie,需要withCredentials属性设为true。
① axios 按下图所示配置
② fetch 按下图所示配置
如果 1.1 节确认已经配置,接口仍返回msg:'未登录',此时可以查看服务端 Access-Control-Allow-Origin 是否设置为 *,这是因为:
原因:Chrome 升级到80版本之后 cookie 的 SameSite 属性默认值由 None 变为 Lax,这也就造成了一些访问跨域 cookie 无法携带的问题。
SameSite 有三个值:
80 版本之前默认是 None,80 版本之后默认是 Lax,所以会有一些跨域请求没有携带 Cookie
解决办法一:
open -a "Google Chrome" --args
--disable-features=SameSiteByDefaultCookies
参考
Cookie SameSite 属性
解决办法二:
91以上版本除使用以上命令行外,也可以使用如下 Chrome 扩展工具;
cookie插件v0.2.1.zip