dmo*_*dmo 4 cors ios express apollo ios12
我正在尝试更好地理解COR,因为我们的网络应用程序的几个用户抱怨,因为他们升级到iOS 12他们正在接收预检错误.
Web检查员的错误
[Error] Preflight response is not successful
[Error] Fetch API cannot load https://www.api.com due to access control checks.
[Error] Failed to load resource: Preflight response is not successful (v4, line 0)
Run Code Online (Sandbox Code Playgroud)
客户端应用程序是Apollo的React应用程序.它使用Apache HTTPD和Express JS通过HTTPS调用服务器.
在所有其他浏览器上一切正常,这与iOS 12隔离.
奇怪的是,当我浏览HTTPD访问日志时,我看不到任何预检电话.当我尝试直接点击服务器时(在iOS 12上),我在日志中看到了预检OPTIONS请求和POST.但是当通过Web应用程序调用服务器时,COR的预检失败了.
在快递应用程序中,我还注销了所有请求,但它也没有出现.
在HTTPD我有设置
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS
Run Code Online (Sandbox Code Playgroud)
在表达我有同样的事情.
有任何想法吗?!
小智 6
在过去的两天里,我一直在与这个完全相同的问题进行斗争,现在才找到解决方案/答案.
这是iOSv12中的一个错误,但它已经在iOSv12.1 beta(16B5059d)中修复,假设当前的beta代码已投入生产.
问题是iOSv12 WebKit预检OPTIONS调用不会离开设备.我运行WireShark和iOSv12模拟器来确认这一点.
很长一段时间潜伏,我发了一个帐号只是为了发布这个答案.如果我用这个答案打破规则/礼节,我很抱歉.
小智 5
如果它说“Access-Control-Allow-Headers”中的Header not allowed,您可以通过从服务器端添加特定的Header来修复它,在那里您发送“Access-Control-Allow-Headers”。因为通配符不起作用,即“Access-Control-Allow-Headers”:“*”
它应该是“Access-Control-Allow-Headers”:“*, Accept, Content-Type, Content-Length, Accept-Encoding, CUSTOM-ALLOWED-HEADER”
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |