Google chrome 如何判断cookie未被发送的原因?
我正在使用chrome,我想知道是否有一个扩展或者一个方法来告诉我为什么没有发送cookie 我向Google chrome 如何判断cookie未被发送的原因?,google-chrome,http,cookies,google-chrome-devtools,developer-tools,Google Chrome,Http,Cookies,Google Chrome Devtools,Developer Tools,我正在使用chrome,我想知道是否有一个扩展或者一个方法来告诉我为什么没有发送cookie 我向http://dev/login它正在返回 Set-Cookie:DevId=cffbc7e688864b6811f676e181bc29e6; domain=dev; path=/; expires=Tue, 16-Jun-2015 21:27:43 GMT 但是,在发布到http://dev/Base/User/home/我没有发送DevIdcookie。我很想知道,如果有人碰巧知道的话,为什
http://dev/login
它正在返回
Set-Cookie:DevId=cffbc7e688864b6811f676e181bc29e6; domain=dev; path=/; expires=Tue, 16-Jun-2015 21:27:43 GMT
但是,在发布到http://dev/Base/User/home/
我没有发送DevId
cookie。我很想知道,如果有人碰巧知道的话,为什么饼干没有被送到。但是,此外,我想知道我如何知道为什么以及如何在将来更好地调试这个问题
以下是从Chrome的开发工具中捕获的一些请求
下面是我对/login
(注意设置Cookie头)的回应
这是我发到/Base/User/home/1
(注意不要使用cookie)的帖子
问题是:
域=开发
引述自:
域属性的值指定域
cookie对其有效。如果是显式指定的值
不以点开头,用户代理提供前导点
因此,只有当主机地址以.dev.
结尾时,web客户端才会发送cookie
尝试发送不带域属性的cookie。这是Chrome特有的错误。还没有解决办法 #56211 chrome.cookies无法用于本地主机域
可能还想读书。这不是像这个问题那样针对chrome,而是针对本地主机行为(与此问题不同)。Evan Carroll链接到chrome的问题(现在重定向到此处:)似乎相关,并标记为“已修复”。然而,目前还不清楚如何进行 我对/etc/hosts中的主机条目有如下问题:
127.0.0.1 local.app.service.tld
但是在把它改成
127.0.0.1 app.localhost
它又像预期的那样工作了。我认为chrome会很好地发布一个关于这个的小日志通知,当它发生的时候。唉,这将为我们大家省去很多痛苦。如果您正在处理跨域请求并使用XHR客户端(如fetch API),请小心参数 XMLHttpRequest.withCredentials属性是一个布尔值,指示是否应使用凭据(如Cookie、授权头或TLS客户端证书)发出跨站点访问控制请求。设置withCredentials对相同的站点请求没有影响
我在没有
的情况下设置cookie时收到此错误;路径=/
在我的cookie设置中指定。然后,我的Web服务器将某些请求路由到位于/
的Web服务器,而cookie未被设置,因为它仅对我最初设置的/auth
有效
请注意,上面的路径
是“/auth
”,这是它的有效位置。在我的cookie中设置路径后:
`nz_auth_jwt=${jwt}; path=/; expires=...`
我在随后的请求中看到了我的cookie。并验证dev tools中的路径是否已正确设置为对所有路由有效,这正是我在本例中所希望的。如何告知未发送cookie的原因:
- 转到“网络”选项卡,然后单击未随cookie发送的请求
- 转到刚刚出现的“Cookies”选项卡
- 选中“显示筛选出的请求cookies”以查看所有未发送的cookies,它们将显示为黄色
然后在阻止发送cookie的属性旁边会出现一个小的“i”标签。您可以将鼠标悬停在上面查看详细信息。在我的例子中,这是因为Fetch API不发送cookies,除非
凭据:“include”
作为选项提供
fetch('API_端点'{
方法:“POST”,
凭据:“包括”,
body:JSON.stringify(一些JSON\u obj)
})
此外,我还必须按如下方式配置Node.js(express.js)后端CORS
const cors=require('cors'))
常数常数={
来源:'http://localhost:3000',
凭据:正确
}
应用程序使用(cors(corsOptions));
您可以验证“资源”选项卡中是否设置了cookie-。如果不是,我们需要一个工具来验证您发送的标题。我已经验证了cookie没有在post请求标题下的“网络”选项卡中发送。但是,cookie并不是在Resources选项卡下设置的事件。这在Firefox中是有效的,而这不是它应该如何工作的。至少据我所知。useragent应该“提供”dot,因此它被写为.dev
,它应该在dev
和dev
的任何子域上提交cookie。然而,当我使用匿名模式或不同的Chrome配置文件时,它可以工作。所以我很困惑为什么这只是我正常的Chrome配置文件中的一个问题。谢谢你,我从3天开始就在寻找这个问题。对于有问题的请求,我发现Cookies选项卡没有出现。@skainswo这可能会帮助你:。虽然那里的答案对我不起作用。
127.0.0.1 app.localhost
`nz_auth_jwt=${jwt}; path=/; expires=...`