На этой странице
Причина
Почему это произошло?
В ответе на запрос к << Glossary (" CORS")>отсутствует <
Если у вас есть доступ к серверу,то добавьте источник запрашивающего сайта в список разрешенных доменов, добавив его в значение заголовка Access-Control-Allow-Origin.
Например, для предоставления сайту доступа к ресурсам используя CORS, header должен выглядеть так:
Так же, вы можете разрешить доступ любому сайту подставив «*» . Подстановка «*» должна использоваться только для публичных APIs. В частных APIs, «*» не должна использоваться, вместо этого должен быть установлен определенный домен или домены. В дополнение, эта подстановка работает только для запросов с атрибутом <
Внимание: Использование * для частных api плохая идея, что очевидно.
Например, в Apache, добавьте следующюю строку в конфигурацию сервера ( в соответствующих разделах , , или ). Конфигурация обычно находится в .conf файле ( httpd.conf и apache.conf стандартные), или в .htaccess файл.
Для Nginx, используется комманда настройки headers:
Я не могу понять, почему мои настройки заголовка .htaccess не работают.
My .htaccess содержимое файла:
Но когда я удаляю Header и добавляю их в index.php , тогда все работает нормально.
Что мне не хватает?
Это должно работать:
Просто для протокола, я столкнулся с точно такой же проблемой, и ни один из ответов не сработал.
Я тестировал свой IP ( ), и я получил следующее:
Произошло перенаправление, и запрос AJAX не учитывает/не выполняет перенаправления.
Это оказалось отсутствующим слешем в конце домена /)
Я снова проверил с косой чертой в конце, и я получил это ниже. В сценарий тоже добавили косую черту, и теперь она работает.
Используйте этот инструмент, чтобы проверить, хороши ли ваши заголовки и устранить неполадки.
У меня есть хостинг на GoDaddy. Мне тоже нужен был ответ на этот вопрос, и после обыска я обнаружил, что это возможно.
Я написал файл .htaccess, поместив его в ту же папку, что и моя страница действий. Вот содержимое файла .htaccess:
Вот мой вызов ajax:
См. эту статью для справки:
Будьте осторожны с:
Совсем не разумно предоставлять доступ всем. Желательно разрешить список только известных доверенных хостов.
Я активировал заголовки заголовков модуля Apache a2enmod, и проблема была решена.
Попробуйте это в .htaccess внешней корневой папки
Будьте осторожны: заголовок добавляет Access-Control-Allow-Origin «*» Это не разумно вообще предоставлять доступ всем. Я думаю, вы должны пользователь:
I + 1’d Miro ответит на ссылку на сайт заголовка . Он вызывает всплывающее объявление при каждом его использовании, но тем не менее он очень полезен для проверки наличия заголовка 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. Но ошибка все равно осталась.