【发布时间】:2013-07-25 21:47:01
【问题描述】:
我们有一个使用 Kerberos 保护的 REST API。托管在其他地方的是调用此 API 的 web 应用。
如果您直接导航到 API,则身份验证工作正常并返回 cookie。然后 webapp 就可以正常工作了,因为它有一个用于 API 根 URI 的 cookie。
但是,如果您导航到 web 应用程序并使用 AJAX 向 API 发出 HTTP GET 请求,则该请求将返回 401: Unauthorized 以及 WWW-Authenticate:Negotiate。如果我导航到同一个地址,chrome 会协商并获得身份验证,但在这种情况下它会停止。
有各种丑陋的 hack 来解决这个问题,例如创建一个 IFRAME 来获取 API 的某些部分,或者将用户重定向到 API 并使用 307 将用户反弹回来,但这些显然不是最佳的.
它在 IE7 中运行良好。
处理这个问题的正确方法是什么?
【问题讨论】:
标签: ajax google-chrome kerberos