access control allow origin не работает

На этой странице

Причина

Почему это произошло?

В ответе на запрос к << Glossary (" CORS")>отсутствует <> , который определяет есть ли доступ к контенту у спрашиващего домена.

Если у вас есть доступ к серверу,то добавьте источник запрашивающего сайта в список разрешенных доменов, добавив его в значение заголовка Access-Control-Allow-Origin.

Например, для предоставления сайту https://amazing.site доступа к ресурсам используя CORS, header должен выглядеть так:

Так же, вы можете разрешить доступ любому сайту подставив «*» . Подстановка «*» должна использоваться только для публичных APIs. В частных APIs, «*» не должна использоваться, вместо этого должен быть установлен определенный домен или домены. В дополнение, эта подстановка работает только для запросов с атрибутом <>, установленным на «anonymous» .

Внимание: Использование * для частных api плохая идея, что очевидно.

Например, в Apache, добавьте следующюю строку в конфигурацию сервера ( в соответствующих разделах , , или ). Конфигурация обычно находится в .conf файле ( httpd.conf и apache.conf стандартные), или в .htaccess файл.

Для Nginx, используется комманда настройки headers:

Я не могу понять, почему мои настройки заголовка .htaccess не работают.

My .htaccess содержимое файла:

Но когда я удаляю Header и добавляю их в index.php , тогда все работает нормально.

Что мне не хватает?

Это должно работать:

Просто для протокола, я столкнулся с точно такой же проблемой, и ни один из ответов не сработал.

Я тестировал свой IP ( http://192.0.2.1/upload ), и я получил следующее:

Произошло перенаправление, и запрос AJAX не учитывает/не выполняет перенаправления.

Это оказалось отсутствующим слешем в конце домена (http://192.0.2.1/upload /)

Я снова проверил с косой чертой в конце, и я получил это ниже. В сценарий тоже добавили косую черту, и теперь она работает.

Используйте этот инструмент, чтобы проверить, хороши ли ваши заголовки и устранить неполадки.

У меня есть хостинг на GoDaddy. Мне тоже нужен был ответ на этот вопрос, и после обыска я обнаружил, что это возможно.

Я написал файл .htaccess, поместив его в ту же папку, что и моя страница действий. Вот содержимое файла .htaccess:

Вот мой вызов ajax:

См. эту статью для справки:

Будьте осторожны с:

Совсем не разумно предоставлять доступ всем. Желательно разрешить список только известных доверенных хостов.

Я активировал заголовки заголовков модуля Apache a2enmod, и проблема была решена.

Попробуйте это в .htaccess внешней корневой папки

Будьте осторожны: заголовок добавляет Access-Control-Allow-Origin «*» Это не разумно вообще предоставлять доступ всем. Я думаю, вы должны пользователь:

I + 1’d Miro ответит на ссылку на сайт заголовка http://www.webconfs.com/http-header-check.php. Он вызывает всплывающее объявление при каждом его использовании, но тем не менее он очень полезен для проверки наличия заголовка Access-Control-Allow-Origin.

Я читаю файл .json из javascript на своей веб-странице. Я обнаружил, что добавление следующего в мой файл .htaccess устраняет проблему при просмотре моей веб-страницы в IE 11 (версия 11.447.14393.0):

Я также добавил следующее в файл /etc/httpd.conf(файл конфигурации Apache):

Сайт проверки заголовка подтвердил, что теперь отправляется заголовок Access-Control-Allow-Origin (спасибо, Miro!).

Тем не менее, 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 м (64-разрядный) игнорирует заголовок Access-Control-Allow-Origin и в любом случае терпит неудачу, ошибочно сообщает:

Нет заголовка «Access-Control-Allow-Origin» присутствует в запрошенном ресурс. Следовательно, Origin ‘‘ не допускается.

Я думаю, что это должно быть чем-то вроде «первого». IE работает правильно; Chrome, Firefox, Opera и Edge не работают; и Chrome — это худший. Разве это не точная противоположность обычному случаю?

Получаю ошибку при попытке доступа к шрифтам на сервере с локальной машины.

Font from origin ‘httр://#######.##’ has been blocked from loading by Cross-Origin Resource Sharing policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘httр://localhost:8080’ is therefore not allowed access.

В .htaccess добавил:

Это не решило проблему. В заголовок, Access-Control-Allow-Origin: * не добавляется.

В чем еще может быть проблема?

Добавлено 1

Проблему добавления в заголовок Access-Control-Allow-Origin: *, решило включения модуля mod_headers. Но ошибка все равно осталась.

Оцените статью