Если вы разработчик REST API, вы уже должны были слышать о термине CORS. В противном случае вы делаете недостаточно. :) Что ж, давайте посмотрим, что такое CORS (или Cross Origin Resource Sharing). У меня есть небольшой пример по CORS, как избежать распространенной ошибки, которую мы получаем из-за CORS, и несколько обходных путей для реализации CORS в приложениях.

Совместное использование ресурсов между источниками - это то, что объявляется w3c при обмене данными между разными доменами. С помощью CORS пользователям будет разрешено взаимодействие между одним и тем же доменом, а обмен данными между источниками будет ограничен несколькими методами. Мы можем увидеть это, когда в основном говорим об API. Вызов REST может дать нам ошибку. Это связано с тем, что серверная и клиентская стороны находятся в разных доменах, и связь между ними ограничена правилами CORS.

Пример для CORS можно написать так.

Пример

Представьте, что есть два домена a и b. Затем a хочет отправить запрос b. Поэтому по умолчанию из-за правил CORS a не может этого сделать, если b явно разрешено запросы от a или разрешить запросы от кого-либо.

Здесь a и b могут быть двумя разными доменами с двумя разными URL-адресами. Кроме того, они могут даже иметь два разных порта в одном домене. Тем не менее ограничение CORS может быть для двух сторон.

Распространенная жалоба на CORS заключается в том, что вызовы REST работают в клиентах REST, но не работают в реальном приложении и выдают ошибку. Клиенты REST, такие как Postman, Advanced REST Client, не вызывают эту ошибку, потому что они отправляют дополнительную информацию заголовка, чтобы обойти проблему. Поэтому наши приложения должны быть настроены для обхода ограничений CORS при общении.

Решение

Обойти проблему CORS можно двумя способами.

  1. Измените запрос, отправленный на сервер, с дополнительными заголовками. (Обычно это делают браузеры, клиенты REST и т. Д.)
  2. Настройте сервер для приема запросов от указанного домена или всех доменов. (Обычно это делается путем добавления информации заголовка ‘Access-Control-Allow-Origin =« * »’ на стороне сервера.)

Правильно подтвержденный запрос приведет к этим конкретным деталям в ответе.

Access-Control-Allow-Origin: http://www.yourdomain.com
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: FooBar
Content-Type: text/html; charset=utf-8

Имена заголовков, начинающиеся с «Access-Control-», относятся к CORS.

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

Таким образом, с правильными разрешениями проблемы можно избежать. Менее защищенные соединения будут запрещены правилами CORS. На этом заканчивается знакомство с CORS и причины возникновения такой проблемы.

Вот несколько полезных ссылок, связанных с CORS.

Спасибо.