Я сохранил файлы JSON на сервере A, ip: 111.111.111.111/folder1/a.json
С сервера B [ip: 444.444.444.444] я пытаюсь получить доступ к этому файлу JSON, я получил результат ниже:
Доступ к XMLHttpRequest по адресу 'http://111.111.111.111/a.json'от происхождения'http://444.444.444.444'был заблокирован политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.
Я написал следующий код в 111.111.111.111/index.php, но получаю ту же ошибку:
<?php
Access-Control-Allow-Origin: "http://444.444.444.444"
Access-Control-Allow-Origin: *
Header set Access-Control-Allow-Origin: *
?>
Доступ к JSON с использованием приведенного ниже кода JavaScript:
$.getJSON("http://111.111.111.111/folder1/a.json", (data) => { }
Ваша политика контроля доступа должна быть настроена на тот же URL-адрес, что и запрашиваемый ресурс.
Я имею в виду, что если вы собираетесь запросить доступ к /folder1/a.json
, то необходимо установить заголовки Access-Control для запросов для этого конкретного URL.
Вы можете добавить эти заголовки через свой сервер (Apache / Nginx / ...) или создать php-скрипт, подобный тому, который вы создали, который устанавливает эти заголовки и возвращает содержимое json-файла (т.е. /folder1/a.json.php
).
Кстати, ваш код недействителен PHP, используйте header(...)
функция.
Вы можете использовать такой сценарий:
<?php
header('Access-Control-Allow-Origin: http://444.444.444.444/*');
header('Content-Type: application/json; charset=utf-8');
die(file_get_contents('a.json'));
?>