Какво е Корс?
CORS е стандарт W3C, който означава "Cross-origin resource sharering". Позволява на браузъра да прави 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 методът е cross-domain, в web.config файлаsystem.webServerСледната конфигурация се добавя под възела:
Горното не е резултатът, който искахме! Ако искаме само домейн име да има достъп до един от нашите интерфейси между домейни, трябва да дефинираме функция, която да изглежда така:
Кодът за задаване на разрешения за достъп между домейни е следният параграф HttpContext.Response.AppendHeader ("Access-Control-Allow-Origin", origin);
Задаваме характеристиките върху метода на контролера по следния начин:
Инициираме заявката на Ajax отново с резултата, както е показано по-долу:
API интерфейсните ресурси от другите ни уебсайтове могат да бъдат успешно достъпени.
(Край)
|