gpt4 book ai didi

iOS11 在所有移动浏览器中导致 CORS 问题

转载 作者:技术小花猫 更新时间:2023-10-29 10:38:31 25 4
gpt4 key购买 nike

我们在装有 iOS11 的 iOS 设备上测试我们的网站,发现它出了问题,因为浏览器不接受来 self 们 API 的响应。使用远程调试器,我们能够确定我们遇到了 CORS 权限错误,并且响应正文和 HTTP header 被剥离。这似乎发生在所有移动 iOS 浏览器 (Chrome/Safari) 上,并且即使在我将 CORS 响应 header 更改为通配符值后仍继续发生。但是,所有其他浏览器/操作系统/iOS 版本都运行良好。我附上了来 self 们 API 的网络响应、我们 API 的响应 header 以及我们从控制台收到的错误。

是否有关于 iOS11 的某些东西可能导致此问题或失败,我是否有任何方法可以获得进一步的诊断?

enter image description here enter image description here enter image description here

最佳答案

我们遇到了类似的情况,表单托管在域 A 上并将数据发布到域 B 上的 API。来自域 A 的 POST 请求包含与域 B 无关的 header “x-api-key”

对 API 的预检 OPTIONS 请求的响应包含 header

  • 访问控制允许来源:https://domainA
  • 访问控制允许 header :*
  • 访问控制允许方法:*

这对除 iOS 以外的所有浏览器都有效。正如我们最终发现的那样,为 Access-Control-Allow-Headers 指定通配符 *不适用于 iOS 浏览器。在对 OPTIONS 请求的响应中,您需要指定 POST 请求中存在的所有 header ,即使某些 header 与域 B 上的服务器无关。只有这样,iOS 才会发送 POST 请求。

将响应头更改为

  • Access-Control-Allow-Headers:Accept,Content-Type,X-Requested-With,x-api-key

做到了(即使服务器 B 上没有处理 header x-api-key)

关于iOS11 在所有移动浏览器中导致 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46454208/

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