Hva er Cors?
CORS er en W3C-standard, som står for "Cross-origin resource sharing". Den gjør det mulig for nettleseren å sende XMLHttpRequest-forespørsler til servere på tvers av opprinnelse, og overvinner dermed begrensningen at AJAX kun kan brukes homogent.
1. Introduksjon
CORS krever både nettleser- og serverstøtte. For øyeblikket støtter alle nettlesere denne funksjonen, og IE-nettleseren kan ikke være lavere enn IE10.
Hele CORS-kommunikasjonsprosessen fullføres automatisk av nettleseren og krever ikke brukerdeltakelse. For utviklere er CORS-kommunikasjon ikke annerledes enn homolog AJAX-kommunikasjon, og koden er nøyaktig den samme. Når nettleseren oppdager at en AJAX-forespørsel krysser kilden, vil den automatisk legge til noe ekstra header-informasjon, og noen ganger én ekstra forespørsel, men brukeren vil ikke merke det.
Derfor er nøkkelen til å oppnå CORS-kommunikasjon serveren. Så lenge serveren implementerer CORS-grensesnittet, kan den kommunisere på tvers av kilder.
Faktisk kan ikke webserverprogrammer (som ASP.NET eller PHP, osv.) skille mellom og vil ikke håndtere om en innkommende HTTP-forespørsel er en tverrdomene Ajax-forespørsel.CORS er designet for å løse dette problemet, og W3Cs egendefinerte CORS-standard gir nettlesere en mekanisme for å tillate Ajax-kryssdomeneforespørsler.
2: Innebygd JS Ajax-forespørselskode
Siden jeg ikke vil referere til jQuery, har jeg kapslet inn følgende metoder med js, som følger:
Ajax ber om grensesnitttester og finner en feil som følger:
Tre: Sett en kontrollermetode for å tillate kryssdomene
Sånn passeAlle er tillattKontrolleren eller API-metoden er tverrdomene, i web.config-filensystem.webServerFølgende konfigurasjon legges til under noden:
Ovenstående er ikke resultatet vi ønsket! Hvis vi vil tillate at kun et domenenavn får tilgang til ett av våre grensesnitt på tvers av domener, må vi definere en funksjon som ser slik ut:
Koden for å sette tilgang på tvers av domener er dette avsnittet HttpContext.Response.AppendHeader ("Access-Control-Allow-Origin", opprinnelse);
Vi setter egenskapene over regulator-metoden som følger:
Vi initierer Ajax-forespørselen igjen med resultatet som vist nedenfor:
API-grensesnittressurser fra våre andre nettsider kan nås med suksess.
(Slutt)
|