出现这个问题大多是不满足同源策略,即从www.A.comwww.B.com或从m.A.come.A.com或从A.com:8080A.com:8086等等设置Cookie,这些情况由于协议或域名或端口不同而被阻止设置。网上很多解决办法,不再赘述。

记一下今天自己遇到的坑:

首先,代码里写着axios.post('http://192.168.0.86:9000/api/user/login'),而前端运行在192.168.0.86:8000,接口响应头存在Set-Cookie,但浏览器无法保存,完全符合预期。

之后,为了能设置Cookie,转而用Nginx代理,以下是代理配置:

1
2
3
4
5
server {
location ^~ /api/ {
proxy_pass http://localhost:9000;
}
}

但还是无法保存。

本以为路径/api走代理了,域就会等同于http://192.168.0.86:8000,结果还是axios填写的地址。

最后把axios里的地址去掉,只保留路径就对了。