【发布时间】:2020-11-30 01:16:24
【问题描述】:
我在 Chrome 中看到了相当混乱的行为。我通过跨域 AJAX 请求设置的 Cookie 不会显示在浏览器的开发工具检查器中。我确定它们正在设置,但无法在本地查看它们。
我想使用 Chrome 开发工具查看我的 API 设置的 cookie
我的前端是一个 SPA,托管在与我的 (Rails) API 不同的服务器上。在本地测试时,它们只是不同的端口:一个在locahost:3000,另一个在localhost:4200。为了可以将 cookie 与 API 请求一起使用,我将服务器端 CORS 策略设置为允许 withcredentials。在客户端,我已将我的(Angular)跨域请求设置为具有标头 withCredentials=true。
我已验证服务器实际上是在将 cookie 发送到浏览器
当我向服务器发出请求时,服务器会设置 cookie,我可以在响应标头中看到它:
...但它没有显示在 Chrome 开发工具(或 Safari)中
我知道它设置成功,因为它会显示在后续请求中
我会假设 cookie 只是无法设置,但是当我检查对 API 的下一个请求时,我可以在 Chrome 的请求负载中看到 cookie:
它还显示在 (Rails) 服务器上的 request.cookies
pry> request.cookies
=> {
"my_cookie"=>"its value"}
为什么我不能在 Chrome 中检查这个 cookie?
有没有办法绕过它 - 无论是在 Chrome 中还是在不同的检查器中?我只是想要一种查看和验证这些 cookie 的方法。
【问题讨论】:
-
你有没有弄明白这个?我有类似的情况,不明白为什么他们没有出现。
-
我不记得我最后得出的结论是什么,恐怕。我也记不起很多技术了。我记得的一件事是我最终放弃了使用某种级别的加密/访问禁止 cookie。我记得有可能以 JavaScript 无法访问它的方式设置 cookie,它只会被发送到服务器。但是我放弃了,因为我无法让它发挥作用。希望有帮助!
-
谢谢!我也不确定!
标签: google-chrome cookies cors