gpt4 book ai didi

firefox - 为什么此 CORS 请求仅在 Firefox 中失败?

转载 作者:行者123 更新时间:2023-12-02 06:39:50 30 4
gpt4 key购买 nike

我正在使用凭据和预检请求实现 CORS,我有点困惑为什么预检请求在 Firefox 30 中始终失败,但在 Safari (7.0.2) 和 Chrome 35 中有效。我认为这个问题不同于“Why does the preflight OPTIONS request of an authenticated CORS request work in Chrome but not Firefox? ”,因为我没有收到 401,而是来自浏览器客户端的 CORS 特定消息:

"Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://myurl.dev.com. This can be fixed by moving the resource to the same domain or enabling CORS."

在不显示源代码的情况下,这就是我正在做的事情:

在服务器上:

选项响应的 header :

  • Access-Control-Allow-Origin:[[从此处复制请求的来源]]
  • 访问控制允许方法:“POST GET 选项”
  • 访问控制允许 header :“X-Requested-With”
  • 访问控制允许凭据:“true”

POST 响应的 header :

  • Access-Control-Allow-Origin:[[从此处复制请求的来源]]
  • 访问控制允许凭据:“true”

在浏览器客户端中:

jQuery.ajax({
url: requestUrl,
type: 'POST',
data: getData(),
xhrFields: {
withCredentials: true
}
});

根据规范,这将触发 OPTIONS 预检请求,该请求需要在其响应中包含 CORS header 。我已多次通读 W3C 规范,但我无法确定在预检响应中我做错了什么(如果有的话)。

最佳答案

问题:“为什么此 CORS 请求仅在 Firefox 中失败?”


答案: 虽然与 OP 的具体情况无关,但它可能会帮助您了解 Firefox 默认情况下不信任 Windows 证书存储中的 CA(证书颁发机构) ,这可能会导致 Firefox 中的 CORS 请求失败(正如 Svish 在问题评论中提到的那样)。


允许 Firefox 信任 Windows 证书存储中的 CA:

  • 在 Firefox 中,在地址栏中输入 about:config
  • 如果出现提示,请接受任何警告
  • 右键单击以创建新的 bool 值,然后输入 security.enterprise_roots.enabled 作为名称将值设置为true
  • 然后重新测试失败的请求

答案来源:https://support.umbrella.com/hc/en-us/articles/115000669728-Configuring-Firefox-to-use-the-Windows-Certificate-Store

关于firefox - 为什么此 CORS 请求仅在 Firefox 中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24514666/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com