我在 iOS 11.3.1 和 iOS 模拟器中使用我的 iPhone 6 在移动版 Safari 上遇到了一个奇怪的错误。
我有一个 Ionic 应用程序(PWA,而不是 Cordova),它使用 Laravel (PHP) 构建的后端 API 已经运行了几个月。我在上面配置了 CORS,它工作正常。
我刚刚尝试实现一项新功能,我上传了一张图片,但它只在移动 Safari 上中断。
我看到 OPTIONS
请求通过了,它看起来是正确的。事实上,除了来自桌面 Safari 的 User-Agent
有效之外,请求/响应看起来完全相同。
在桌面 Safari 上,这之后是一个成功的 POST
。
在移动版 Safari 上,POST
甚至没有尝试退出,相反,我收到一条消息 Failed to load resource: Origin https://upload.geekity.com is not allowed通过 Access-Control-Allow-Origin。
尽管 OPTIONS
请求为 Access-Control-Allow 返回
。https://upload.geekity.com
-起源
以下是桌面和移动 safari 上 OPTIONS
和 POST
的网络检查器的屏幕截图。
您可以在这里查看源代码:image-upload .
我真的不知道这里会发生什么导致以这种方式失败。
最佳答案
您是对的,CORS 错误消息非常具有误导性。在过去的几天里,我一直在为完全相同的问题而苦苦挣扎,结果我试图从手机上传的图像对于我正在使用的应用程序服务器来说太大了,它是 Kubernetes 上的 nginx;所以对我有用的修复方法是将这个注释添加到入口配置中
nginx.ingress.kubernetes.io/proxy-body-size: "0"
删除对上传大小的任何限制。
关于angular - 上传图像时仅在 iOS 移动 safari 中出现虚假 CORS 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141697/