@reaget

Как быть с этой ошибкой «has been blocked by CORS policy»?

Получаю такие ошибки
OPTIONS https://delc.ru/templates/newdelc/xslt/form2019/sendform2019.php 500 (Internal Server Error)

Access to XMLHttpRequest at 'https://..../form2019/sendform2019.php' from origin 'https://www.site.ru' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.


Я пытаюсь перед данные при помощи Ajax.

Что значит эта ошибка и как ее можно устранить?

РЕШЕНИЕ
Воспользовался сервисом https://cors-anywhere.herokuapp.com/

Как пользоваться:
https://cors-anywhere.herokuapp.com/"здесь идет ваш исполняемый скрипт"
  • Вопрос задан
  • 104401 просмотр
Пригласить эксперта
Ответы на вопрос 3
inoise
@inoise
Solution Architect, AWS Certified, Serverless
100500 раз уже тут и не только тут обсуждалось. Браузеры не позволяют через js обращаться с одного домена на другой без разрешения со стороны запрашиваемого домена (cors policy). Запрашивай через curl из php, раз его в тегах указал
Ответ написан
Если у вас есть доступ к конфигурации сервера, к которому вы делаете запрос - то нстройте на нем cors и будет вам счастье)
В частности заголовки
- Access-Control-Allow-Origin
- Access-Control-Allow-Methods

Cross-origin_resource_sharing
what-is-cors
Ответ написан
Комментировать
@Dasslier
FrontEnd Developer
1. Учись гуглить, хотя бы для того, чтобы понять, что значит данная ошибка. Выше тебе отписали, что это политика безопасности кросс-доменных запросов.
2. Если работаешь с каким-нибудь API Яндекса, например, и пилишь сервис на локалке, то сделай так:
а) Купи место на хостинге, заведи любой домен.
б) Залей на хостинг файл с php кодом получения данных, функция https://www.php.net/manual/ru/function.file-get-co... с ее помощью просто запиши в переменную обращение к серверу и выведи переменную через echo
в) В файле .htaccess поставь заголовки, которые разрешают кросс-доменные запросы, о них отписано в сообщении выше.
г) запускай запрос к своему домену с php файлом и радуйся. Если используешь хром, то может не сработать запрос с этой же ошибкой, но это уже вылечится, если поставить расширение CORS из магазина расширений хром
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы