Mikä on Cors?
CORS on W3C-standardi, joka tarkoittaa "Cross-origin resource sharing". Se mahdollistaa selaimen tehdä XMLHttpRequest-pyyntöjä ristiinpuolisille palvelimille, mikä poistaa rajoituksen, jonka mukaan AJAX:ia voidaan käyttää vain homogeenisesti.
1. Johdanto
CORS vaatii sekä selaimen että palvelimen tuen. Tällä hetkellä kaikki selaimet tukevat tätä ominaisuutta, eikä IE-selain voi olla IE10:tä alhaisempi.
Koko CORS-viestintäprosessi suoritetaan selaimella automaattisesti, eikä se vaadi käyttäjän osallistumista. Kehittäjille CORS-viestintä ei eroa homologisesta AJAX-viestinnästä, ja koodi on täsmälleen sama. Kun selain huomaa, että AJAX-pyyntö ylittää lähteen, se lisää automaattisesti lisäotsikotietoja ja joskus vielä yhden lisäpyynnön, mutta käyttäjä ei tunne sitä.
Siksi avain CORS-viestinnän saavuttamiseen on palvelin. Kunhan palvelin toteuttaa CORS-rajapinnan, se voi kommunikoida eri lähteiden välillä.
Itse asiassa verkkopalvelinohjelmat (kuten ASP.NET tai PHP jne.) eivät pysty erottamaan eivätkä hallitse, onko saapuva Http-pyyntö monitoimialueen Ajax-pyyntö.CORS on suunniteltu ratkaisemaan tämä ongelma, ja W3C:n räätälöity CHORS-standardi antaa selaimille mekanismin Ajaxin monitoimialueen pyyntöjen sallimiseen.
2: Natiivi JS Ajax -pyyntökoodi
Koska en halua viitata jQueryyn, kapseloin seuraavat metodit js:llä seuraavasti:
Ajax pyytää rajapintatestejä ja löytää virheen seuraavasti:
Kolme: Aseta ohjainmenetelmä, joka sallii monitoimialueen käytön
Niinpä niinKaikki ovat sallittujaOhjain tai API-menetelmä on monitoimialueinen, web.config-tiedostossasystem.webServerSolmun alle lisätään seuraava konfiguraatio:
Yllä oleva ei ole se lopputulos, jota halusimme! Jos haluamme sallia vain verkkotunnuksen käyttää yhtä rajapintaamme eri domaineissa, meidän täytyy määritellä ominaisuus, joka näyttää tältä:
Koodi verkkotunnusten välisten käyttöoikeuksien asettamiseen on tässä kappaleessa: HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
Asetamme ohjainmenetelmän päälle ominaisuudet seuraavasti:
Käynnistämme Ajax-pyynnön uudelleen tuloksella alla olevalla tavalla:
API-rajapintaresursseihin muilta verkkosivuiltamme pääsee helposti käsiksi.
(Loppu)
|