Dałem +1 odpowiedzi Miro za łącze do strony sprawdzania nagłówków http://www.webconfs.com/http-header-check.php . Za każdym razem, gdy go używasz, wyświetla nieprzyjemną reklamę, ale mimo to jest bardzo przydatna do weryfikowania obecności nagłówka Access-Control-Allow-Origin.
Czytam plik .json z javascript na mojej stronie internetowej. Zauważyłem, że dodanie następującego pliku do mojego pliku .htaccess rozwiązało problem podczas przeglądania mojej strony internetowej w IE 11 (wersja 11.447.14393.0):
<FilesMatch "\.(json)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
Dodałem również do /etc/httpd.conf (plik konfiguracyjny Apache):
AllowOverride All
Witryna sprawdzająca nagłówki potwierdziła, że nagłówek Access-Control-Allow-Origin jest teraz wysyłany (dzięki, Miro!).
Jednak Firefox 50.0.2, Opera 41.0.2353.69 i Edge 38.14393.0.0 i tak pobierają plik, nawet bez nagłówka Access-Control-Allow-Origin. (Uwaga: mogą sprawdzać adresy IP, ponieważ obie domeny, których używałem, są hostowane na tym samym serwerze, pod tym samym adresem IPv4).
Jednak przeglądarka Chrome 54.0.2840.99 m (64-bitowa) ignoruje nagłówek Access-Control-Allow-Origin i mimo wszystko kończy się niepowodzeniem, błędnie zgłaszając:
Żądany zasób nie zawiera nagłówka „Access-Control-Allow-Origin”. Dlatego źródło „ {mydomain} ” nie ma dostępu.
Myślę, że to musi być coś w rodzaju „pierwszego”. IE działa poprawnie; Chrome, Firefox, Opera i Edge są pełne błędów; a Chrome jest najgorszy . Czy to nie jest dokładne przeciwieństwo zwykłego przypadku?
a2enmod headers