Co je to Cors?
CORS je standard W3C, což znamená "sdílení zdrojů napříč zdroji". Umožňuje prohlížeči posílat požadavky XMLHttpRequest na servery napříč původem, čímž překonávají omezení, že AJAX lze používat pouze homogenně.
1. Úvod
CORS vyžaduje podporu jak prohlížeče, tak serveru. V současnosti tuto funkci podporují všechny prohlížeče a prohlížeč IE nesmí být nižší než IE10.
Celý komunikační proces CORS je automaticky realizován prohlížečem a nevyžaduje účast uživatele. Pro vývojáře není komunikace CORS ničím odlišná od homologní AJAX komunikace a kód je zcela stejný. Jakmile prohlížeč zjistí, že požadavek AJAX prochází zdrojem, automaticky přidá další informace v hlavičce, a někdy i další požadavek, ale uživatel to nepocítí.
Klíčem k dosažení komunikace CORS je tedy server. Pokud server implementuje rozhraní CORS, může komunikovat napříč zdroji.
Ve skutečnosti webové serverové programy (jako ASP.NET nebo PHP atd.) nedokážou rozlišit a nebudou spravovat, zda příchozí HTTP požadavek je Ajax požadavek napříč doménami.CORS je navržen tak, aby tento problém vyřešil, a vlastní standard CORS W3C poskytuje prohlížečům mechanismus pro povolení požadavků Ajaxu napříč doménami.
2: Nativní kód požadavku pro JS Ajax
Protože nechci odkazovat na jQuery, zapouzdřil jsem následující metody pomocí js, a to následovně:
Ajax požádá o testování rozhraní a najde chybu následovně:
Za třetí: Nastavte metodu řadiče tak, aby umožnila cross-domain
Nic mocVšichni jsou povoleniMetoda řadiče nebo API je cross-domain, v souboru web.configsystem.webServerPod uzlem je přidána následující konfigurace:
Výše uvedené není výsledek, který jsme chtěli! Pokud chceme povolit přístup pouze doménovému jménu k jednomu z našich rozhraní napříč doménami, musíme definovat funkci, která vypadá takto:
Kód pro nastavení oprávnění přístupu napříč doménami je tento odstavec HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Charakteristiky nastavujeme nad řídicí metodou následovně:
Znovu zahajujeme požadavek Ajaxu s výsledkem, jak je uvedeno níže:
API rozhraní z našich ostatních webových stránek jsou úspěšně přístupné.
(Konec)
|