我正在Unity中构建一个应用程序并导出到HTML5。当我尝试发出一个简单的GET请求时,我收到此错误:
从'http://example.co.uk/request.php?foo=bar'访问'http://anothersite.co.uk'的XMLHttpRequest已被CORS策略阻止:请求的资源上没有'Access-Control-Allow-Origin'标头。
我在论坛上看到了许多问题,人们给出了这些答案(正如我对它们的解释):
- 您请求的服务器/站点应设置标题,以接受您请求的特定域或仅将其设置为通配符
- 在浏览器中禁用Web安全性
- 使用代理,例如https://cors-anywhere.herokuapp.com
第一个对我有意义,但我在服务器端尝试了以下内容无济于事:
任何提示都会有所帮助,如果我误解了整个事情,我很抱歉,但我无法做出头或尾......我只是继续得到上面显示的相同错误。
在此先感谢您的帮助! :)
我使用以下PHP代码的版本来提供数据,它似乎工作。
if (isset($_SERVER['HTTP_ORIGIN'])) {
// Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
// you want to allow, and if so:
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
// may also be using PUT, PATCH, HEAD etc
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}