【问题标题】:How do you view cookies set via AJAX CORS requests in Chrome dev tools?您如何在 Chrome 开发工具中查看通过 AJAX CORS 请求设置的 cookie?
【发布时间】: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


【解决方案1】:

Cookie 由客户端应用程序在浏览器上设置,从您的屏幕截图中,您正在检查端口 4200 上的服务器,而不是在端口 3000 上运行的客户端应用程序

【讨论】:

  • 这是个好主意,我也考虑过,但我不认为 cookie 是特定于端口的。我还尝试直接访问 localhost:3000 的 API 以在那里检查它们,但它们仍然不显示:/
猜你喜欢
  • 2012-04-26
  • 2017-09-30
  • 2023-03-18
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多