Mi az a Cors?
A CORS egy W3C szabvány, amely a "Cross-origin erőforrás megosztás" rövidítése. Lehetővé teszi a böngésző számára, hogy XMLHttpRequest kéréseket küldjön az eredetre kereszt szerverekhez, így leküzdve azt a korlátot, hogy az AJAX csak homogén módon használható.
1. Bevezetés
A CORS mind böngésző, mind szerver támogatást igényel. Jelenleg minden böngésző támogatja ezt a funkciót, és az IE böngésző nem lehet alacsonyabb az IE10-nél.
A teljes CORS kommunikációs folyamatot automatikusan befejezi a böngésző, és nem igényel felhasználói részvételt. Fejlesztők számára a CORS kommunikáció nem különbözik a homológ AJAX kommunikációtól, és a kód pontosan ugyanaz. Amint a böngésző megállapítja, hogy egy AJAX kérés áthalad a forráson, automatikusan hozzáad néhány további fejlécinformációt, néha még egy további kérést, de a felhasználó nem fogja érezni azt.
Ezért a CORS kommunikáció kulcsa a szerver. Amíg a szerver megvalósítja a CORS interfészt, képes kommunikálni a források között.
Valójában a webszerver programok (mint az ASP.NET vagy PHP stb.) nem tudják megkülönböztetni, és nem tudják kezelni, hogy egy bejövő Http kérés átfedett Ajax kérés-e.A CORS erre a problémára van tervezve, és a W3C egyedi CORS szabvány lehetőséget ad a böngészőknek az Ajax cross-domain kérések engedélyezésére.
2: Natív JS Ajax kéréskód
Mivel nem szeretnék jQuery-re hivatkozni, a következő metódusokat js-re kapszuláltam a következőképpen:
Az Ajax interfész teszteket kér, és a következő hibát talál:
Három: Állíts be egy vezérlő metódust, amely lehetővé teszi a cross-domain működést
Úgy ahogyMindegyik megengedettA vezérlő vagy API módszer a web.config fájlban a cross-domain.system.webServerA következő konfigurációt adjuk hozzá a csomópont alatt:
A fentiek nem az eredmény, amit szerettünk volna! Ha csak egy domain név férhet hozzá az egyik interfészünkhöz a domaineken keresztül, olyan jellemzőt kell definiálnunk, amely így néz ki:
A domének közötti hozzáférési jogosultságok beállításához a kód a következő bekezdés: HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", eredet);
A vezérlő módszer tetején a következőképpen állítjuk be a jellemzőket:
Újra indítjuk az Ajax kérést az alábbi eredménnyel:
Más weboldalainkról származó API interfész erőforrások sikeresen elérhetők.
(Vége)
|