Kas ir Cors?
CORS ir W3C standarts, kas apzīmē "Cross-origin resource sharing". Tas ļauj pārlūkprogrammai veikt XMLHttpRequest pieprasījumus starpizcelsmes serveriem, tādējādi pārvarot ierobežojumu, ka AJAX var izmantot tikai viendabīgi.
1. Ievads
CORS ir nepieciešams gan pārlūkprogrammas, gan servera atbalsts. Pašlaik visas pārlūkprogrammas atbalsta šo funkciju, un IE pārlūks nevar būt zemāks par IE10.
Visu CORS saziņas procesu pārlūkprogramma pabeidz automātiski, un tam nav nepieciešama lietotāja līdzdalība. Izstrādātājiem CORS komunikācija neatšķiras no homologās AJAX komunikācijas, un kods ir tieši tāds pats. Kad pārlūkprogramma konstatē, ka AJAX pieprasījums šķērso avotu, tas automātiski pievienos papildu galvenes informāciju un dažreiz vēl vienu papildu pieprasījumu, bet lietotājs to nejutīs.
Tāpēc CORS komunikācijas sasniegšanas atslēga ir serveris. Kamēr serveris ievieš CORS saskarni, tas var sazināties starp avotiem.
Faktiski tīmekļa servera programmas (piemēram, ASP.NET vai PHP utt.) nevar atšķirt un nepārvaldīs, vai ienākošais Http pieprasījums ir starpdomēnu Ajax pieprasījums.CORS ir izstrādāts, lai atrisinātu šo problēmu, un W3C pielāgotais CORS standarts nodrošina pārlūkprogrammām mehānismu, lai atļautu Ajax starpdomēnu pieprasījumus.
2: Vietējais JS Ajax pieprasījuma kods
Tā kā es nevēlos atsaukties uz jQuery, es iekapsulēju šādas metodes ar js, šādi:
Ajax pieprasa saskarnes testus un atrod kļūdu šādi:
Trešais: iestatiet kontrollera metodi, lai atļautu starpdomēnu
Ne šis, ne tasVisi ir atļautiKontrollera vai API metode ir starpdomēns, failā web.configsistēma.tīmekļa serverisZem mezgla tiek pievienota šāda konfigurācija:
Iepriekš minētais nav rezultāts, ko mēs vēlējāmies! Ja mēs vēlamies atļaut tikai domēna nosaukumam piekļūt vienai no mūsu saskarnēm dažādos domēnos, mums ir jādefinē funkcija, kas izskatās šādi:
Starpdomēnu piekļuves atļauju iestatīšanas kods ir šis punkts HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", izcelsme);
Mēs iestatījām raksturlielumus kontroliera metodes augšpusē šādi:
Mēs atkal uzsākam Ajax pieprasījumu ar rezultātu, kā parādīts zemāk:
API saskarnes resursiem no citām mūsu vietnēm var veiksmīgi piekļūt.
(Beigas)
|