Ошибка: отсутствует заголовок «Access-Control-Allow-Origin».Хотя я добавил это - PullRequest
0 голосов
/ 22 февраля 2019

Я создаю приложение в Unity и экспортирую в HTML5.Когда я пытаюсь сделать простой запрос GET, я получаю эту ошибку:

Доступ к XMLHttpRequest в «http://example.co.uk/request.php?foo=bar' from origin» http://anothersite.co.uk' заблокирован политикой CORS: На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Я видел много вопросов, задающих это на форумах, и люди дают такие ответы (как яинтерпретировать их):

  1. Сервер / сайт, с которого вы запрашиваете, должны установить заголовки, чтобы либо принять конкретный домен, с которого вы запрашиваете, либо просто установить его как подстановочный знак

  2. Отключение веб-безопасности в вашем браузере

  3. Используйте прокси-сервер, например https://cors -anywhere.herokuapp.com

Первый имеет смысл для меня, но я попробовал следующее на стороне сервера безрезультатно:

  1. Установите заголовки в файле .htaccess.Например, набор заголовков Access-Control-Allow-Origin "*"

  2. Установите заголовки в php-файле "request": header ('Access-Control-Allow-Origin: http://anothersite.co.uk'); (я также пытался "*")

  3. Я попытался отправить заголовки в запросе ОТ "anothersite.co.uk" в коде Unity.

  4. Я попробовал то, что предлагали люди с https://cors -anywhere.herokuapp.com , передав ему URL, но это не сработало, может быть, я неправильно понял. Я действительно не понимаюв любом случае, это не решение проблемы ... делает все это бессмысленным.

Любые советы действительно помогут, мне очень жаль, если я просто неправильно все понял, но яне могу сделать ни голову, ни хвост ... Я просто продолжаю получать ту же ошибку, показанную выше.

Заранее спасибо за любую помощь! :)

1 Ответ

0 голосов
/ 23 февраля 2019

Я использую версию следующего 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...