Назад | Перейти на главную страницу

Политика CORS: Нет 'Access-Control-Allow-Origin' для файлов JSON

Я сохранил файлы 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'));
?>