iOS11在所有移动浏览器中导致CORS问题
我们在使用iOS11的iOS设备上测试我们的网站,并注意到它正在破坏,因为浏览器不接受来自我们的API的响应。 使用远程调试器,我们能够确定我们收到了CORS权限错误,并且正在剥离响应正文和HTTP标头。 这似乎发生在所有移动iOS浏览器(Chrome / Safari)上,并且即使在我将CORS响应标头更改为通配符值之后仍然会出现这种情况。 但是,iOS的每个其他浏览器/操作系统/版本都运行良好。 我已经附加了来自api的网络响应,api的响应头以及我们从控制台获得的错误。 此问题可在以下urlhttps://demo2.lifespeak.com/Share.aspx?key=ccb0b4a2-d041-426d-ac3b-c9472379613e–language-1–vid-19–cid-121进行测试比较iOS11和其他浏览器的结果
有没有关于iOS11的东西可能导致这种情况,或者说失败了,有什么方法可以进一步诊断吗?
我们遇到类似的情况,其中包含在域A上托管的表单,并将数据发布到域B上的API.来自域A的POST请求包含与域B无关的标头“x-api-key”
对API的预检OPTIONS请求的响应包含标头
- Access-Control-Allow-Origin: https:// domainA
- 访问控制允许报头:*
- 访问控制允许的方法:*
这适用于所有浏览器,除了iOS上的浏览器。 正如我们最终发现的那样,为Access-Control-Allow-Headers指定通配符*不适用于iOS浏览器。 在对OPTIONS请求的响应中,您需要指定POST请求中存在的所有标头,即使某些标头与域B上的服务器无关。只有这样iOS才会发送POST请求。
将响应标头更改为
- 访问控制允许报头:接受,内容类型,X-要求,采用X-API密钥
做到了(即使服务器B上没有处理标题x-api-key)
iOS 11引入了一些新的跟踪保护function,可以阻止某些网站/url
您可以在设置 – > Safari – >防止跨站点跟踪中禁用此function。
也许那是你的问题?
我有同样的问题,这是有效的 – 但我想要一种方法,没有我们的用户必须这样做。
来源: https : //www.macrumors.com/how-to/safari-ios-11-tracking-prevention/
- MapKit iOS 9 detailCalloutAccessoryView用法
- 在iOS中的AVCaptureDevice输出上设置GrayScale
- NSCache拥有使用imageWithData实例化的UIImage的强指针,并且在卸载时不会从内存中删除
- 关闭ECSlidingViewController菜单
- 用AVCaptureSession在iOS上读取QRCodes – alignment问题?
- 提交给App Store的应用程序和应用程序更新必须使用Xcode 5.1.1或更高版本以及iOS 7 SDK构build
- MPMediaPickerController与video媒体types不起作用
- 从用户input的属性string中查找属性
- iphone – 试试看,问题