跨子域的 Ajax jquery - 带有 403 禁止错误的 OPTIONS 请求
Posted
技术标签:
【中文标题】跨子域的 Ajax jquery - 带有 403 禁止错误的 OPTIONS 请求【英文标题】:Ajax jquery across subdomain - OPTIONS request with 403 Forbidden error 【发布时间】: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 来处理这个问题?
【问题讨论】:
【参考方案1】:似乎从未为 OPTIONS 请求发送 cookie 和身份验证详细信息。看回复that
【讨论】:
以上是关于跨子域的 Ajax jquery - 带有 403 禁止错误的 OPTIONS 请求的主要内容,如果未能解决你的问题,请参考以下文章
带有 django 的 JQuery AJAX 获取 csrf 错误 403