【问题标题】:jQuery redirects and HttpOnly cookiesjQuery 重定向和 HttpOnly cookie
【发布时间】:2012-10-30 22:30:14
【问题描述】:

我们使用 JQuery AJAX 登录。登录服务发出 HTTP 302,位置是登录用户的 GET,或者(在登录失败的情况下)始终返回未授权 HTTP 状态的 REST 端点。在 302 的同时,我们为 JSESSIONID 发出一个 set cookie。该 cookie 是一个 HttpOnly cookie。

当使用直接的 HTTP 表单发布时,重定向工作正常,一切都设置好了。使用 JQuery AJAX 时,重定向到 GET /user/{userId} 不起作用,因为第二次调用不发送 cookie。这个失败的第二次调用应该触发另一个重定向到 auth-failed 端点,但它实际上没有。检查它,我看到第二个电话得到了 “取消”。这是什么意思,我该如何解决这个问题?

【问题讨论】:

标签: jquery ajax cookies httponly


【解决方案1】:

您可能违反了同源政策。您登录的域是否与提供页面/脚本文件的域相同?

如果不是,您将需要使用 CORS(跨源资源共享)来获取 cookie。

您可以在这里了解更多信息:

http://www.html5rocks.com/en/tutorials/cors/

https://developer.mozilla.org/en-US/docs/HTTP_access_control

【讨论】:

  • 这里只是清理一个老问题。虽然这个答案不是完整的答案,但它已经足够接近了。基本上,我需要做的是检查 JSessionID 的完整描述。有两件事在起作用。 1) 是登录的域是 HTTPS,而 GET 的域是 HTTP,因此遇到了 Darren 提到的 CORS 问题。 2) 是 cookie 中存在路径(/auth 与 /rest)问题,导致 CORS 修复也不起作用。修复路径问题终于解决了问题。
猜你喜欢
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-04
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2012-04-06
相关资源
最近更新 更多