浏览器在后续请求中不发送cookie

Ale*_*enz 8 python cookies python-3.x web sanic

使用cookie进行用户识别的项目.

当用户到达时,它会调用该服务(在localhost中运行),并且带有响应头的服务发送cookie如下所示:

curl 'http://127.0.0.1:8000/api/v1.0/tracking' -X OPTIONS -H 'Access-Control-Request-Method: POST' -H 'Origin: http://local.com:8080' -H 'Access-Control-Request-Headers: content-type,x-forwarded-for' --compressed
Run Code Online (Sandbox Code Playgroud)

响应标头如下所示:

HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: 60
Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, x-forwarded-for
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, PATCH, GET
Content-Length: 0
Content-Type: text/plain; charset=utf-8
Set-Cookie: id=random_id_123_123; expires=Wed, 06-Dec-2017 10:57:36 GMT; Domain=.local.com; Path=/
Run Code Online (Sandbox Code Playgroud)

然后在特定用户操作后,应用程序发送以下API请求:

curl 'http://127.0.0.1:8000/api/v1.0/tracking?event=video_added&user_id=123123123' -H 'Origin: http://local.com:8080' -H 'Accept: */*' -H 'Referer: http://local.com:8080/' -H 'Connection: keep-alive' --compressed
Run Code Online (Sandbox Code Playgroud)

上述请求的请求标头如下所示:

GET api/v1.0/tracking?event=video_added&user_id=123123123 HTTP/1.1
Host: 127.0.0.1:8000
Connection: keep-alive
Accept: */*
Origin: http://local.com:8080
User-Agent: My user agent
Referer: http://local.com:8080/
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Run Code Online (Sandbox Code Playgroud)

我期待第一个请求接收cookie(random_id_123_123),因为响应头将是第二个请求的请求头.

该网站运行于:http://local.com:8080(实际上在本地机器上运行,我的vhost配置指向127.0.0.1 local.com),它由python提供服务SimpleHTTPServer.

设置cookie的后端服务也在localhost的端口8000上运行.似乎我在实施过程中遗漏了一些东西.那是什么?

编辑:这是代码.

Tar*_*ani 5

您的问题是Cookie仅基于域发送.你的代码有

var settings = {
  "crossDomain": true,
  "url": "http://127.0.0.1:8000/api/v1.0/tracking?event=video_added&tracking_id=123123123",
  "method": "GET",

}
Run Code Online (Sandbox Code Playgroud)

网址是127.0.0.1:8000,local.com:8000如果你想要传递cookie应该是.

  • 请参阅此线程 /sf/ask/112852421/。如果你在浏览器中以 `local.com:8080` 浏览它,那么 api 也应该使用 `local.com:8000` 因为即使 `local.com` 指向 `127.0.0.1`,它们在谈到 cookie 共享 (2认同)