Что такое Корс?
CORS — это стандарт W3C, который расшифровывается как «Cross-origin resource sharing (Cross-origin resource sharing shareing). Он позволяет браузеру отправлять запросы XMLHttpRequest к серверам с кросс-ориджинами, тем самым преодолевая ограничение, позволяющее использовать AJAX только однородно.
1. Введение
CORS требует поддержки как браузера, так и сервера. В настоящее время все браузеры поддерживают эту функцию, и IE не может быть ниже IE10.
Весь процесс коммуникации CORS завершается браузером автоматически и не требует участия пользователя. Для разработчиков коммуникация CORS ничем не отличается от гомологичной AJAX-коммуникации, и код остаётся абсолютно таким же. Как только браузер обнаруживает, что AJAX-запрос пересекает исходник, он автоматически добавляет дополнительную информацию о заголовке, а иногда и ещё один запрос, но пользователь этого не почувствует.
Таким образом, ключ к коммуникации CORS — это сервер. Пока сервер реализует интерфейс CORS, он может общаться между источниками.
Фактически, веб-серверные программы (такие как ASP.NET или PHP и др.) не могут различать и не управляют, является ли входящий HTTP-запрос кросс-доменным Ajax-запросом.CORS разработан для решения этой проблемы, и пользовательский стандарт W3C предоставляет браузерам механизм для разрешения кросс-доменных запросов Ajax.
2: Родной код запроса JS Ajax
Поскольку я не хочу ссылаться на jQuery, я инкапсулировал следующие методы с помощью js, следующим образом:
Ajax запрашивает тестирование интерфейса и находит следующую ошибку:
Третье: Установить метод контроллера для разрешения междоменной работы
Так себеРазрешено всемКонтроллер или метод API является кроссдоменным, в файле web.configsystem.webServerПод узлом добавляется следующая конфигурация:
Вышеописанное — не тот результат, которого мы хотели! Если мы хотим позволить только доменному имени получать доступ к одному из наших интерфейсов между доменами, нам нужно определить функцию, которая выглядит следующим образом:
Код для установки разрешений на междоменный доступ выглядит следующим абзацем: HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Мы задаём характеристики поверх метода контроллера следующим образом:
Мы снова инициируем запрос Ajax с результатом, приведённым ниже:
Ресурсы интерфейса API с других наших сайтов могут быть успешно доступны.
(Конец)
|