Spec-Zone.ru › HTTP

Ошибки

Ошибки CORS

Обмен ресурсами между различными доменными зонами (CORS) — это стандарт, позволяющий серверу ослабить политику одного домена. Это используется для явного разрешения некоторых запросов между различными доменными зонами, одновременно отклоняя другие. Например, если сайт предлагает встроенную службу, может потребоваться ослабить определённые ограничения. Настройка такой конфигурации CORS не всегда проста и может представлять определённые трудности. На этих страницах мы рассмотрим некоторые распространённые сообщения об ошибках CORS и способы их устранения.

Если конфигурация CORS настроена неправильно, консоль браузера отобразит ошибку, например, "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at $somesite", указывая, что запрос заблокирован из-за нарушения правил безопасности CORS. Однако это может не обязательно быть ошибкой настройки. Возможно, запрос на самом деле намеренно запрещён веб-приложением пользователя и удалённой внешней службой. Тем не менее, если конечная точка должна быть доступна, потребуется отладка, чтобы добиться успеха.

Выявление проблемы

Чтобы понять основную проблему с конфигурацией CORS, необходимо выяснить, какой запрос является проблемным и почему. Эти шаги могут вам помочь:

  1. Перейдите на веб-сайт или веб-приложение и откройте Инструменты разработчика.
  2. Теперь попробуйте воспроизвести неисправную транзакцию и проверьте консоль, если вы видите сообщение об ошибке нарушения CORS. Оно, вероятно, будет выглядеть примерно так:

Firefox console showing CORS error

Текст сообщения об ошибке будет похожим на следующее:

Cross-Origin Request Blocked: The Same Origin Policy disallows
reading the remote resource at https://some-url-here. (Reason:
additional information here).

Примечание: По соображениям безопасности, подробности о том, что пошло не так с запросом CORS, недоступны коду JavaScript. Весь код знает только о возникновении ошибки. Единственный способ определить, что конкретно пошло не так, — это посмотреть в консоли браузера на подробности.

Сообщения об ошибках CORS

Консоль Firefox отображает сообщения в своей консоли, когда запросы завершаются неудачей из-за CORS. Часть текста ошибки — это сообщение «причина», которое предоставляет дополнительную информацию о том, что пошло не так. Ниже перечислены сообщения о причинах; нажмите на сообщение, чтобы открыть статью, объясняющую ошибку более подробно и предлагающую возможные решения.

  • Причина: CORS отключён
  • Причина: Запрос CORS не выполнен успешно
  • Причина: Заголовок CORS 'Origin' не может быть добавлен
  • Причина: Внешний редирект запроса CORS запрещён
  • Причина: Запрос CORS не HTTP
  • Причина: Заголовок CORS 'Access-Control-Allow-Origin' отсутствует
  • Причина: Заголовок CORS 'Access-Control-Allow-Origin' не соответствует 'xyz'
  • Причина: Аутентификация не поддерживается, если заголовок CORS 'Access-Control-Allow-Origin' равен '*'
  • Причина: Метод не найден в заголовке CORS 'Access-Control-Allow-Methods'
  • Причина: ожидается 'true' в заголовке CORS 'Access-Control-Allow-Credentials'
  • Причина: Предварительный запрос CORS не выполнен успешно
  • Причина: неверный токен 'xyz' в заголовке CORS 'Access-Control-Allow-Methods'
  • Причина: неверный токен 'xyz' в заголовке CORS 'Access-Control-Allow-Headers'
  • Причина: отсутствует токен 'xyz' в заголовке CORS 'Access-Control-Allow-Headers' из канала предварительного запроса CORS
  • Причина: Не разрешены несколько заголовков CORS 'Access-Control-Allow-Origin'

См. также

  • Словарь: CORS
  • Введение в CORS
  • Настройки CORS на стороне сервера
  • Изображение с поддержкой CORS
  • Атрибуты настроек CORS
  • https://www.test-cors.org – страница для тестирования запросов CORS

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API