上传图像时仅在iOS移动版Safari中出现假CORS失败

And*_*ell 8 safari mobile-safari ionic-framework ionic3 angular

我在iOS 11.3.1和iOS模拟器上使用iPhone 6在移动Safari上遇到了一个奇怪的错误.

我有一个Ionic应用程序(PWA,而不是Cordova),使用Laravel(PHP)构建的后端API已经好几个月了.我已经配置了CORS,它工作正常.

我刚刚尝试实现一个新功能,我上传了一个图像,它只在移动Safari上中断.

我看到OPTIONS请求通过,看起来是正确的.事实上,请求/响应看起来完全相同,除了User-Agent桌面Safari工作.

在桌面Safari上,随后是POST成功的.

在移动Safari浏览器POST甚至不尝试走出去,相反,我得到一个消息Failed to load resource: Origin https://upload.geekity.com is not allowed by Access-Control-Allow-Origin.,尽管OPTIONS恢复要求https://upload.geekity.comAccess-Control-Allow-Origin.

这里有两个网页检查的截图OPTIONS,并POST在台式机和移动Safari浏览器.

桌面Safari选项 桌面Safari POST iOS Safari选项 iOS Safari POST

你可以在这里查看源代码:image-upload.

我真的不知道这里会发生什么,以这种方式失败.

Mes*_*ges 2

你是对的,CORS 错误消息非常具有误导性。在过去的几天里,我一直在努力解决同样的问题,结果发现我尝试从手机上传的图像对于我正在使用的应用程序服务器(Kubernetes 上的 nginx)来说太大了;所以对我有用的修复方法就是将此注释添加到入口配置中

nginx.ingress.kubernetes.io/proxy-body-size:“0”

删除对上传大小的任何限制。

413请求实体太大