Обход проблемы с CORS в Chrome - PullRequest
0 голосов
/ 07 февраля 2019

Мы столкнулись с проблемой, из-за которой использование запроса Chrome через XMLHTTPRequest завершилось неудачно с ошибкой ниже:

Не удалось загрузить <server url>: отсутствует заголовок 'Access-Control-Allow-Origin'на запрашиваемом ресурсе.Поэтому для источника '<client domain>' доступ запрещен.

Эта ошибка относится только к Chrome, поскольку мы не получаем эту проблему в IE.Есть ли в любом случае, чтобы обойти эту ошибку в JavaScript.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Хотя оно ограничено, можно попробовать использовать CORS где угодно https://github.com/Rob--W/cors-anywhere или расширение chrome здесь , которое позволяет обходить CORS (убедитесь, что вы отключили это, когда не тестируете, так как это приведет кпроблемы с запросами с других сайтов)

0 голосов
/ 07 февраля 2019

Нет, к счастью, нет.

Политика одного и того же происхождения - это концепция безопасности, реализованная браузерами, чтобы запретить коду Javascript отправлять запросы к источнику / домену, отличному от того, из которого он был получен.Поэтому позволить разработчикам обойти это из Javascript было бы плохо.

Cross-Origin Resource Sharing (CORS) - это механизм, который использует дополнительные заголовки HTTP, чтобы сообщить браузеру, чтобы веб-приложение работало наодин источник (домен) имеет право доступа к выбранным ресурсам с сервера из другого источника.Веб-приложение отправляет HTTP-запрос перекрестного источника, когда оно запрашивает ресурс, источник которого отличается (домен, протокол и порт) от своего собственного источника.

Источник: Обмен ресурсами между источниками (CORS)

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

Если вы не контролируете API :
Попросите разработчика API добавить ваш домен в заголовок Access-Control-Allow-Origin.

РЕДАКТИРОВАТЬ:
Добавление правильного заголовка не 'сделает запрос OPTIONS запросом, в то время как сервер принимает только POST'.
Запрос OPTIONS является предварительным полетом попросите проверить , чтобы проверить, можно ли на самом деле сделать вызов CORS Если предпечатный запрос имеет правильный заголовок, то запрос POST будет следовать, как показано на рисунке ниже:

OPTIONS before POST

Вы можете найти всебазовой информации CORS в статье Понимание CORS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...