javascript - 提交formdata时通过laravel应用程序从移动设备发出cors问题
问题描述
我有一个 laravel API 并使用https://github.com/barryvdh/laravel-cors
插件。我的 config/cors.php 看起来像这样
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
作为客户端,我使用的是 vue.js(没关系)。
问题:从桌面 chrome 浏览器,一切正常。根本没有cors问题。然后我构建它并从服务器和移动 chrome 上传,一切正常,除了一个页面负责上传带有 1 张图片的 formData。在桌面上,这很好用,但在移动 chrome 浏览器上却不行。
你认为可能是什么问题?
我使用了远程开发工具。这是我在移动设备上遇到的错误:
Access to XMLHttpRequest at 'example.api.com' from origin 'example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
7.7259b24dd9d7819902a2.chunk.js:1 POST api.example.com net::ERR_FAILED
解决方案
由于您有一个特定前端接口的 API,您可以简单地在barryvdh/laravel-cors
配置中设置该域。这将避免错误检测调用域。
'supportsCredentials' => false,
'allowedOrigins' => ['example.com'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
.env
如果您稍后有生产版本,则应该使用变量。
推荐阅读
- python - 如何在 Django 中以单一形式上传多个文件?
- javascript - 关于Axios的使用
- amazon-web-services - 在 puresec 的函数屏蔽上检测到空的 aws lambda 子进程执行
- wcf - 收到错误“合同不匹配 - 发送方和接收方之间的操作不匹配”
- c++ - 非类型模板参数:从 bool 到 int 的隐式转换有效,但从 double 到 int 无效。这是为什么?
- nativescript - 如何:使用 Webpack 自定义 CSS 文件?(本机脚本)
- php - Laravel:OVH 托管 SQLSTATE [HY000] [2002] 连接超时
- c++ - 调用哪个字符串构造函数?
- reactjs - 是否可以使用 redux-form、connect 和 withRouter?
- javascript - 未处理的拒绝(SyntaxError):意外的令牌 < 在 JSON 中的位置 0 React