Kaj je Cors?
CORS je standard W3C, kar pomeni "Cross-origin resource sharing (izmenjava virov med izvori". Brskalniku omogoča, da pošilja zahteve XMLHttpRequest strežnikom med izvori, s čimer premaga omejitev, da se AJAX lahko uporablja le homogeno.
1. Uvod
CORS zahteva podporo tako brskalnika kot strežnika. Trenutno to funkcijo podpirajo vsi brskalniki, brskalnik IE pa ne sme biti nižji od IE10.
Celoten komunikacijski proces CORS se samodejno zaključi s strani brskalnika in ne zahteva sodelovanja uporabnika. Za razvijalce CORS komunikacija ni nič drugačna od homologne AJAX komunikacije, koda pa je popolnoma enaka. Ko brskalnik ugotovi, da AJAX zahteva prečka vir, samodejno doda dodatne informacije v glavo in včasih še eno dodatno zahtevo, vendar uporabnik tega ne bo zaznal.
Zato je ključ do doseganja komunikacije CORS strežnik. Dokler strežnik implementira CORS vmesnik, lahko komunicira med različnimi viri.
Pravzaprav programi spletnih strežnikov (kot so ASP.NET ali PHP itd.) ne morejo razlikovati in ne bodo upravljali, ali je dohodna HTTP zahteva Ajax čez domene.CORS je zasnovan za rešitev tega problema, W3C prilagojen CORS standard pa brskalnikom omogoča mehanizem za Ajaxove zahteve med domenami.
2: Izvorna koda za zahtevo JS Ajax
Ker ne želim navajati jQuery, sem naslednje metode zajel z js, in sicer:
Ajax zahteva preizkuse vmesnika in najde napako, kot sledi:
Tretjič: Nastavite metodo krmilnika, ki omogoča meddomensko delovanje
Tako takoVsi so dovoljeniMetoda krmilnika ali API-ja je meddomenska v datoteki web.configsystem.webServerPod vozliščem je dodana naslednja konfiguracija:
Zgornje ni rezultat, ki smo si ga želeli! Če želimo dovoliti dostop do enega od naših vmesnikov med domenami, moramo definirati funkcijo, ki izgleda takole:
Koda za nastavitev dovoljenj za dostop med domenami je ta odstavek HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", izvor);
Lastnosti na vrhu metode krmilnika nastavimo takole:
Ponovno začnemo Ajaxovo zahtevo z rezultatom, kot je prikazano spodaj:
API vmesniki z naših drugih spletnih strani so uspešno dostopni.
(Konec)
|