【发布时间】:2012-12-24 02:41:21
【问题描述】:
我们的网站托管在 2 个子域上:http://site1.mydomain.com 和 http://site2.mydomain.com 出于安全原因,两者都需要 Http 授权才能访问它。
site1 有一个链接允许用户登录,它打开一个 jquery 弹出窗口供用户提供凭据。提交成功后,用户可以访问site2。
在 POST 之前,浏览器发出 OPTION 请求(预检)调用,最终出现 403 Forbidden 错误。 问题在于站点都需要基本授权,因此 OPTION 请求永远不会到达服务器以添加响应标头。
当请求方法为OPTIONS时,使用Java servlet过滤器添加以下内容:
Access-Control-Allow-Origin:原点,
访问控制允许方法:GET、POST、OPTIONS
Access-Control-Allow-Headers:授权、内容类型
有没有一种方法可以通过 jquery Ajax 在 PreFlight (OPTIONS) 请求上传递授权凭据以使其命中上述 Java 过滤器?
我已经尝试使用 headers{'Authorization': 'Basic XXXXX'} 发送它,但似乎没有用。 或者有没有其他方法可以使用 Apache 来处理这个问题?
【问题讨论】:
标签: jquery cross-domain authorization preflight