按我的认知应该是没有问题的,现在有点怀疑人生
现在在domain:80
部署了 JSON 接口,前端 VUE 写的,静态文件放在同域名的domain:8080
端口上一个静态服务器。出现登录时获取到Set-Cookie
头但是浏览器没有保存
按以前跨域项目的经验这样是完全没有问题的,CORS 都设置好了,XHR 的 withCredentials 也加了,Cookie 只用 domain 和 path 区分这个 set-cookie 完全没问题。但是就是遇到了这种情况
比较了一下和原来跨域的不同点,猜测可能是影响因素:
两个端口服务都是 HTTPS,不过应该没影响啊,Cookie 没设置 Secure 属性
HTTP2,发现 HTTP2 响应头为全小写,可能影响 Access-Control-Allow-Headers
请求&响应:
POST /login HTTP/1.1
Host: domain:80
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: https://domain:8080/
Content-Type: application/x-www-form-urlencoded
Content-Length: 21
Origin: https://domain:8080
Connection: close
Pragma: no-cache
Cache-Control: no-cache
uname=*&pwd=*
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://domain:8080
Access-Control-Expose-Headers: Content-Type
Content-Type: application/json; charset=utf-8
Set-Cookie: think=MTU*****; Path=/; Expires=Tue, 03 Dec 2019 13:52:58 GMT; Max-Age=2592000
Vary: Origin
Date: Sun, 03 Nov 2019 13:52:58 GMT
Content-Length: 10
Connection: close
{"code":0}
接收到 Cookie 后查看火狐的本地保存 Cookie 发现没有保存,导致之后鉴权接口访问都没有携带 Cookie
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.