Я добавил +1 к ответу Миро для ссылки на сайт проверки заголовков http://www.webconfs.com/http-header-check.php . Он выдает неприятную рекламу каждый раз, когда вы его используете, но, тем не менее, он очень полезен для проверки наличия заголовка Access-Control-Allow-Origin.
Я читаю файл .json из javascript на своей веб-странице. Я обнаружил, что добавление следующего в мой файл .htaccess устраняет проблему при просмотре моей веб-страницы в IE 11 (версия 11.447.14393.0):
<FilesMatch "\.(json)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
Я также добавил следующее в /etc/httpd.conf (файл конфигурации Apache):
AllowOverride All
Сайт проверки заголовков подтвердил, что заголовок Access-Control-Allow-Origin теперь отправляется (спасибо, Миро!).
Однако Firefox 50.0.2, Opera 41.0.2353.69 и Edge 38.14393.0.0 все равно извлекают файл, даже без заголовка Access-Control-Allow-Origin. (Примечание: они могут проверять IP-адреса, поскольку два домена, которые я использовал, размещены на одном сервере с одним и тем же адресом IPv4.)
Однако Chrome 54.0.2840.99 m (64-разрядная версия) игнорирует заголовок Access-Control-Allow-Origin и в любом случае не работает, ошибочно сообщая:
На запрошенном ресурсе нет заголовка Access-Control-Allow-Origin. Следовательно, к источнику ' {mydomain} ' не разрешен доступ.
Я думаю, это должно быть своего рода «первое». IE работает корректно; Chrome, Firefox, Opera и Edge содержат ошибки; а Хром хуже всего . Разве это не полная противоположность обычному случаю?
a2enmod headers