如何判断为什么没有发送cookie?

Eva*_*oll 9 cookies google-chrome http developer-tools google-chrome-devtools

我正在使用chrome,我想知道是否有扩展或方法来说明为什么没有发送cookie.

我有一个请求,我正在做http://dev/login,它正在返回,

Set-Cookie:DevId=cffbc7e688864b6811f676e181bc29e6; domain=dev; path=/; expires=Tue, 16-Jun-2015 21:27:43 GMT
Run Code Online (Sandbox Code Playgroud)

但是,在帖子上http://dev/Base/User/home/我没有发送DevIdcookie.如果有人碰巧知道,我很想知道为什么没有发送cookie.但是,此外,我很想知道如何告诉为什么以及如何在将来更好地调试此问题.

以下是Chrome的开发工具中捕获的一些请求

所以这是我的回复/login(注意Set-Cookie标题),

HTTP/1.1 200 OK
Date: Tue, 16 Jun 2015 19:57:43 GMT
Server: Apache
Pragma: no-cache
Cache-control: no-cache, max-age=0
Set-Cookie: DevId=cffbc7e688864b6811f676e181bc29e6; domain=dev; path=/; expires=Tue, 16-Jun-2015 21:27:43 GMT
Cache-Control: max-age=0
Expires: Tue, 16 Jun 2015 19:57:43 GMT
Keep-Alive: timeout=10, max=10
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/json; charset=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

这是我的帖子/Base/User/home/1(注意没有cookie),

POST /Base/User/home/ HTTP/1.1
Host: dev
Connection: keep-alive
Content-Length: 0
Origin: http://dev
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/43.0.2357.81 Chrome/43.0.2357.81 Safari/537.36
Content-type: application/x-www-form-urlencoded; charset=UTF-8
Accept: text/javascript, text/html, application/xml, text/xml, */*
X-Prototype-Version: 1.7.2
X-Requested-With: XMLHttpRequest
Referer: http://dev/user/1/home
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Run Code Online (Sandbox Code Playgroud)

Luc*_*aid 25

如何判断未发送 cookie 的原因:

  • 转到网络选项卡,然后单击未与您的 cookie 一起发送的请求。

  • 转到刚刚出现的“Cookies”选项卡。

  • 选中“显示过滤掉的请求 cookie”以查看所有未发送的 cookie,它们将显示为黄色。

然后,在阻止发送 cookie 的属性旁边会出现一个小“i”标签。您可以将鼠标悬停在上面以查看详细信息。

  • 谢谢老兄,我三天以来一直在寻找这个。 (2认同)
  • 对于有问题的请求,我发现 Cookie 选项卡不会出现。 (2认同)
  • @skainswo这可能对您有帮助:[/sf/ask/3879004111/](https:// /stackoverflow.com/questions/55414344/chrome-network-request-does-not-show-cookies-tab-some-request-headers-copy-as)。尽管那里的答案对我不起作用。 (2认同)

Pav*_*ndu 7

就我而言,这是因为 Fetch API 不会发送 cookie,除非credentials: "include"作为选项给出。

fetch('API_ENDPOINT',{
  method: 'POST',
  credentials: 'include',
  body: JSON.stringify(some_json_obj)
})
Run Code Online (Sandbox Code Playgroud)

另外,我必须按如下方式配置 Node.js (express.js) 后端 CORS。

const cors = require('cors')

const corsOptions = {
  origin: 'http://localhost:3000',
  credentials: true
}

app.use(cors(corsOptions));
Run Code Online (Sandbox Code Playgroud)


Eva*_*oll 4

这是 Chrome 特有的错误。还没修复..

#56211 chrome.cookies 对于 localhost 域失败

https://code.google.com/p/chromium/issues/detail?id=56211

可能还想看这个问题。它不像这个问题那样特定于 chrome,而是特定于本地主机行为(与这个问题不同)。