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

Заголовок Access-Control-Allow-Origin отсутствует на запрошенном ресурсе. Но он есть?

Мой /etc/apache2/sites-enabled/example.com.conf на удаленном сервере выглядит так ...

<VirtualHost *:80>
        ServerAdmin admin@example.com
        ServerName example.com
        ServerAlias images.example.com
        Header set Access-Control-Allow-Origin "*"
        DocumentRoot /home/username/var/www/example.com/public_html/
        ErrorLog /home/username/var/www/example.com/logs/error.log
        CustomLog /home/username/var/www/example.com/logs/access.log combined
</VirtualHost>

Я запускаю проект Django на своем локальном компьютере. Проект отправляет GET-запрос на удаленный сервер для чтения файла JSON: http://images.remote-server.com/dir/subdir/info.json

Но я вижу эту ошибку в консоли своего браузера.

Failed to load http://images.remote-server.com/dir/subdir/info.json: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8000' is therefore not allowed access.

Я ничего не вижу в своем error.log.

Как правильно установить 'Access-Control-Allow-Origin' в моем .conf файл?

Чтобы добавить авторизацию CORS в заголовок с помощью Apache, просто добавьте следующую строку внутри Каталог, Расположение, Файлы или VirtualHost разделы конфигурации вашего сервера (обычно находятся в файле * .conf, таком как httpd.conf или apache.conf) или в файле .htaccess:

<VirtualHost *:80>
....      
Header set Access-Control-Allow-Origin "*"
</VirtualHost>

и перезапустите (перезагрузите) apache

Похоже, вы добавили заголовок не на тот виртуальный хост