Wat is Cors?
CORS is een W3C-standaard, wat staat voor "Cross-origin resource sharing". Het stelt de browser in staat XMLHttpRequest-verzoeken te doen aan cross-origin servers, waardoor de beperking wordt overwonnen dat AJAX alleen homogeen kan worden gebruikt.
1. Inleiding
CORS vereist zowel ondersteuning voor browsers als servers. Momenteel ondersteunen alle browsers deze functie, en de IE-browser kan niet lager zijn dan IE10.
Het volledige communicatieproces van CORS wordt automatisch door de browser afgerond en vereist geen gebruikersparticipatie. Voor ontwikkelaars verschilt CORS-communicatie niet van homologe AJAX-communicatie, en de code is exact hetzelfde. Zodra de browser ontdekt dat een AJAX-verzoek de bron overschrijdt, voegt hij automatisch extra headerinformatie toe, en soms nog een extra verzoek, maar de gebruiker zal het niet merken.
Daarom is de server de sleutel tot het bereiken van CORS-communicatie. Zolang de server de CORS-interface implementeert, kan hij communiceren tussen bronnen.
Webserverprogramma's (zoals ASP.NET of PHP, enz.) kunnen in feite niet onderscheiden of een inkomend HTTP-verzoek een cross-domain Ajax-verzoek is en beheren ze niet.CORS is ontworpen om dit probleem op te lossen, en de W3C aangepaste CORS-standaard geeft browsers een mechanisme om Ajax cross-domain verzoeken mogelijk te maken.
2: Native JS Ajax-aanvraagcode
Omdat ik jQuery niet wil verwijzen, heb ik de volgende methoden ingekapseld met js, als volgt:
Ajax vraagt interfacetests aan en vindt een fout als volgt:
Drie: Stel een controllermethode in om cross-domain toe te staan
Zo zoIedereen is toegestaanDe controller of API-methode is cross-domain, in het web.config-bestandsystem.webServerDe volgende configuratie wordt toegevoegd onder de node:
Bovenstaande is niet het resultaat dat we wilden! Als we alleen een domeinnaam toegang willen geven tot een van onze interfaces over domeinen heen, moeten we een functie definiëren die er als volgt uitziet:
De code voor het instellen van cross-domain toegangsrechten is deze alinea: HttpContext.Response.AppendHeader ("Access-Control-Allow-Origin", origin);
We zetten de eigenschappen bovenop de regelaarmethode als volgt:
We starten het Ajax-verzoek opnieuw met het resultaat zoals hieronder weergegeven:
API-interfacebronnen van onze andere websites zijn succesvol toegankelijk.
(Einde)
|