Ce este Cors?
CORS este un standard W3C, care înseamnă "Cross-origin resource sharing" (partajare de resurse între origini). Permite browserului să facă cereri XMLHttpRequest către serverele cross-origin, depășind astfel limitarea conform căreia AJAX poate fi folosit doar omogen.
1. Introducere
CORS necesită suport atât pentru browser, cât și pentru server. În prezent, toate browserele suportă această funcție, iar browserul IE nu poate fi mai mic decât IE10.
Întregul proces de comunicare CORS este realizat automat de către browser și nu necesită participarea utilizatorului. Pentru dezvoltatori, comunicarea CORS nu este diferită de comunicarea AJAX omologă, iar codul este exact același. Odată ce browserul descoperă că o cerere AJAX trece prin sursă, va adăuga automat informații suplimentare de antet și uneori încă o cerere suplimentară, dar utilizatorul nu va simți acest lucru.
Prin urmare, cheia pentru a obține comunicarea CORS este serverul. Atâta timp cât serverul implementează interfața CORS, poate comunica între surse.
De fapt, programele server web (cum ar fi ASP.NET sau PHP etc.) nu pot distinge și nu pot gestiona dacă o cerere Http primită este o cerere Ajax cross-domain.CORS este conceput pentru a rezolva această problemă, iar standardul personalizat CORS W3C oferă browserelor un mecanism care permite cererile Ajax cross-domain.
2: Cod nativ de cerere JS Ajax
Deoarece nu vreau să fac referire la jQuery, am încapsulat următoarele metode cu js, după cum urmează:
Ajax solicită teste de interfață și găsește o eroare după cum urmează:
Trei: Setează o metodă de controler pentru a permite cross-domain
Aşa şi aşaToți au voieControlerul sau metoda API este cross-domain, în fișierul web.configsystem.webServerUrmătoarea configurație este adăugată sub nod:
Cele de mai sus nu sunt rezultatul pe care ni l-am dorit! Dacă vrem să permitem accesul doar unui nume de domeniu la una dintre interfețele noastre între domenii, trebuie să definim o caracteristică care să arate astfel:
Codul pentru setarea permisiunilor de acces între domenii este acest paragraf HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origine);
Am setat caracteristicile deasupra metodei controlerului astfel:
Inițiem din nou cererea Ajax cu rezultatul prezentat mai jos:
Resursele de interfață API de pe celelalte site-uri ale noastre pot fi accesate cu succes.
(Sfârșit)
|