3

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

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

4

1 回答 1

1

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

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

您可以在此处了解更多信息:

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

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

于 2012-10-30T14:30:14.580 回答