【发布时间】:2019-02-22 19:20:14
【问题描述】:
我正在 Unity 中构建一个应用程序并导出为 HTML5。当我尝试发出一个简单的 GET 请求时,我收到了这个错误:
在“http://example.co.uk/request.php?foo=bar”访问 XMLHttpRequest 来自原点 'http://anothersite.co.uk' 已被 CORS 阻止 政策:没有“Access-Control-Allow-Origin”标头出现在 请求的资源。
我在论坛上看到很多问题都在问这个问题,人们给出了这样的回答(正如我所解释的那样):
您请求的服务器/站点应设置标头,以接受您请求的特定域或将其设置为通配符
在浏览器中禁用网络安全
第一个对我来说很有意义,但我在服务器端尝试了以下方法无济于事:
在 .htaccess 文件中设置标题。如Header Set Access-Control-Allow-Origin "*"
在“请求”php文件中设置标题:header('Access-Control-Allow-Origin:http://anothersite.co.uk'); (我也试过“*”)
我尝试在 Unity 代码中的“anothersite.co.uk”请求中发送标头。
我通过将 URL 传递给 https://cors-anywhere.herokuapp.com 尝试了人们对它的建议,但这根本不起作用,也许我误解了它。无论如何,我真的不喜欢这个解决方案。让整个事情看起来毫无意义。
任何提示都会有帮助,如果我误解了整个事情,我很抱歉,但我无法做出正面或反面。我只是不断收到上面显示的相同错误。
提前感谢您的帮助! :)
【问题讨论】:
-
所以为了清楚您尝试从中获取数据的服务器,您在该 .htaccess 上添加了 cors 标头,对吗?你告诉 apache 重新读取配置吗?
-
是的,没错。抱歉,我不确定您所说的“重读”是什么意思?一定要读两遍吗?
-
如果您编辑 apache 配置,它通常不会读取新更改,直到重新启动或被告知读取新配置...
-
我已经尝试重新启动服务器,并且还在 cpanel 中禁用了此功能:“使用全局 DCV 直通而不是 .htaccess 修改(需要 EA4)”.. 所以它仍然忽略我的 .htaccess :(
-
那么我建议你去找一些 apache 论坛,看看他们是否可以帮助你了解为什么它不读取你的配置