gpt4 book ai didi

javascript - Safari 10.1 : XMLHttpRequest with query parameters cannot load due to access control checks

转载 作者:行者123 更新时间:2023-12-03 01:02:34 25 4
gpt4 key购买 nike

Safari 10.1 上尝试在包含查询参数(例如 https://example.com/api?v=1 )的 URL 上发出 CORS 请求时,Safari 会显示

XMLHttpRequest cannot load due to access control checks

Chrome/Firefox 工作正常。

对于来自没有 ?v=1 的页面的请求,Safari 也可以正常工作。

我尝试更改服务器响应 header

Access-Control-Allow-Origin: https://example.com

Access-Control-Allow-Origin: https://example.com/api?v=1

但这会破坏 Chrome。

有什么建议吗?

最佳答案

您遇到了 CORS 问题。

一些可能的原因:

  • header Access-Control-Allow-Origin 只能在服务器端设置,不能在客户端脚本中设置。 (您没有明确表示您这样做是正确的。)
  • 您确定协议(protocol)(httphttps 甚至 file)完全相同吗?
  • 如果您可能有多个子域,则需要使用诸如 "^http(s)?://(.+\.)?test\.com$ 之类的内容设置您的配置(例如 Apache).
    ^ 标记行的开头,以防止此 url 前面出现任何内容。您需要一个协议(protocol)并允许两者都在这里。子域是可选的。 $ 标记行尾(您不需要设置子页面,因为 origin 仅基于主机)。
  • 如上所述hereAccess-Control-Allow-Headers: Origin 添加到服务器配置中也可能是一个解决方案。尝试将我的 Safari 发出的实际请求与 Firefox 或 Chrome 完成的成功请求进行比较,以发现可能丢失的 header (也可以将它们与您的服务器配置进行比较)。

关于javascript - Safari 10.1 : XMLHttpRequest with query parameters cannot load due to access control checks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43517254/

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