如何修复错误“加载资源失败:访问控制允许来源不能包含多个来源”

Posted

技术标签:

【中文标题】如何修复错误“加载资源失败:访问控制允许来源不能包含多个来源”【英文标题】:How to fix error "Failed to load ressource : Acces-control-allow-origin cannot contain more than one origin" 【发布时间】:2019-06-02 08:26:28 【问题描述】:

我们最近聘请了一家外部公司为我们开发移动应用程序。

我们为他们提供了一个 API,但他们在编译 ios 可执行文件时遇到了问题。 (在android下一切正常)

他们收到的错误消息是:“加载资源失败:Access-Control-Allow-Origin cannot contain more than one origin”

我们使用 symfony 4、Nelmio CORS 和 nginx 配置。

我们将此添加到我们的 nginx 配置中,但问题仍然存在 (https://enable-cors.org/server_nginx.html)(在 GET 和 POST 方法中添加了“授权”),老实说,我不知道我该做什么来帮助他们.

您对此有任何想法吗?这是服务器问题吗?还是他们这边的发展问题?我们的?

他们将 Cordova 与 ionic 和 WKWebView 一起使用。 一旦他们启用了 CORS,WKWebView 似乎会导致问题。

我检查了我的 Api 响应,它显示了良好的价值:Access-Control-Allow-Origin

如果您想获得更多信息,我随时为您服务

【问题讨论】:

例如,如果标头具有多个值 *,*,则可能会导致这种情况。或者标头在不同的位置设置了多次[例如,一次由 NGINX 设置,一次由 NGINX 将请求路由到的任何位置设置]。 See this SO question for a deep discussion。至于问题出在哪里,我很确定这必须在服务器端解决。 是否有任何已知的方法可以查看这些附加标头的添加位置?我在 POSTMAN 下什么也没看到,除了已配置的允许来源 * 【参考方案1】:

这次不是服务器端问题。

双标头访问控制 => 仅在运行命令时

ionic cordova run [android/ios] —livereload 

和访问 API,iOS 问题:

在 confix.xml 中添加了 Allow-navigation 和 Allow-intent > iOS 平台:

<allow-intent href="*" />
<allow-navigation href="*" />

【讨论】:

嗨 D.TOUAUX,但如果我们不使用第一个命令,而是直接部署到设备上:有办法避免该错误吗? (例如在生产模式下,我们不能这样运行应用程序)提前谢谢

以上是关于如何修复错误“加载资源失败:访问控制允许来源不能包含多个来源”的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 WordPress 中的 HTTP 错误

如何修复 Ubuntu 中检测到系统程序错误的问题

如何修复“找不到名称'ClipboardItem'”错误?

如何修复 C++ 中的“分段错误”错误

分段错误错误(信号名称:SIGSEGV)的原因是啥,我将如何找到/修复它?

如何修复以下错误? [复制]