Chrome为什么没有收到我的Cookie?

时间:2018-07-12 15:09:18

标签: javascript google-chrome cookies

我已经设置了一个网络服务器,并提供路由。当我用curl打它时,我得到:

$ curl -i -X POST http://dev.com:5000/user/check
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 40
Access-Control-Allow-Origin: *
Vary: Cookie
Set-Cookie: session=eyJjaGVjayI6dHJ1ZX0.Dij_Ng.OL7a0pycpZgU45zEIzC5ZTfeCdk; Domain=.dev.com; HttpOnly; Path=/
Server: Werkzeug/0.14.1 Python/3.6.5
Date: Thu, 12 Jul 2018 15:03:18 GMT

{
  "result": null,
  "status": "ok"
}   

但是,当我在Chrome中点击它时,调试控制台会报告:

常规

Request URL: http://dev.com:5000/user/check
Request Method: POST
Status Code: 200 OK
Remote Address: 127.0.0.1:5000
Referrer Policy: no-referrer-when-downgrade

响应标题

Access-Control-Allow-Origin: http://localhost:8080
Content-Length: 40
Content-Type: application/json
Date: Thu, 12 Jul 2018 15:04:10 GMT
Server: Werkzeug/0.14.1 Python/3.6.5
Vary: Origin, Cookie

请求标头

Provisional headers are shown
Accept: application/json, text/plain, */*
Origin: http://localhost:8080
Referer: http://localhost:8080/
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

不返回任何cookie。发生了什么事?

1 个答案:

答案 0 :(得分:0)

我在本地主机上进行了类似的测试,发现了相同的问题。

我在网站example.com上创建了一个php页面,该页面以类似的Set-cookie标头响应,其中包含domain和其他值。

测试1

我从<script src="http://example.com/my.php">将该页面称为localhost

Chrome网络标签未在Set-cookie中显示Response Headers标头,但是设置了 cookie ,我在应用中确认了这一点。选项卡中的“标签”。

测试2

此外,在此页面上,我使用document.createElement('script')从控制台向php页面发出了另一个请求,设置了其src属性,然后将该元素附加到正文。

但是,Request Headers 没有包含任何Cookie标头。

测试3

我打开了另一个标签,打开了devtools,然后键入http://example.com/my.php并按Enter。

这次,CookieRequest Headers存在

此外,在测试1和测试2中,Request Headers显示为显示了临时标头,但在测试3中却不是。

我想知道domain参数是否有问题。