Mis on Cors?
CORS on W3C standard, mis tähendab "Cross-origin ressursside jagamist". See võimaldab brauseril teha XMLHttpRequest päringuid ristpäritolu serveritele, ületades seega piirangu, et AJAX-i saab kasutada ainult ühtlaselt.
1. Sissejuhatus
CORS vajab nii brauseri kui serveri tuge. Praegu toetavad kõik brauserid seda funktsiooni ja IE brauser ei saa olla madalam kui IE10.
Kogu CORS-i suhtlusprotsess viiakse brauseris automaatselt lõpule ega nõua kasutaja osalust. Arendajate jaoks ei erine CORS side homoloogsest AJAX kommunikatsioonist ning kood on täpselt sama. Kui brauser avastab, et AJAXi päring ületab allika, lisab ta automaatselt lisapäise infot ja mõnikord veel ühe lisapäringu, kuid kasutaja seda ei tunne.
Seetõttu on CORS-i suhtluse saavutamise võti server. Kui server rakendab CORS-liidest, saab ta suhelda erinevate allikate vahel.
Tegelikult ei suuda veebiserveri programmid (näiteks ASP.NET või PHP jne) eristada ega kontrollida, kas saabuv Http-päring on domeenideülene Ajaxi päring.CORS on loodud selle probleemi lahendamiseks ning W3C kohandatud CORS standard annab brauseritele mehhanismi Ajaxi domeenideüleseks päringuteks.
2: Natiivse JS Ajaxi päringukood
Kuna ma ei soovi viidata jQuery'le, kapseldasin järgmised meetodid js-iga järgmiselt:
Ajax taotleb liidese teste ja leiab vea järgmiselt:
Kolmandaks: Seadista kontrolleri meetod, mis lubab domeenidevahelist
Ah või niiKõik on lubatudKontroller või API meetod on domeenideülene, web.config failissystem.webServerJärgmine konfiguratsioon lisatakse sõlme alla:
Eelnev ei ole see tulemus, mida soovisime! Kui tahame, et ainult domeeninimi pääseks ligi ühele meie liidestest üle domeenide, peame määratlema omaduse, mis näeb välja selline:
Domeenideüleste juurdepääsuõiguste määramise kood on see lõik: HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Seadistame kontrolleri meetodi peale järgmised omadused:
Alustame Ajaxi päringut uuesti tulemusega, mis on allpool näidatud:
API liidese ressursse meie teistelt veebilehtedelt saab edukalt kasutada.
(Lõpp)
|