|
Ongelman kuvaus Kun verkkotunnusten välinen kutsu ASP.NET MVC:n tai Web APIn ASP.NET kirjoitetun palvelun, se muuttuu saavuttamattomaksi. Lisääntymismenetelmä - Käytä mallipohjaa luodaksesi yksinkertaisimman ASP.NET Web API -projektin, debugaa se varmistaaksesi, että se toimii
- Luo toinen projekti, jossa on vain yksi HTML-sivu, ja tee AJAX-kutsu
- Avaa tämä sivu selaimessasi ja löydät seuraavan virheen (405: Menetelmä ei sallittu)
Huomautus: Sama tilanne toistuu ASP.NET MVC:ssä. Joissain tapauksissa MVC:tä voidaan käyttää myös suoraan palveluiden kehittämiseen, mikä tuo omat etunsa ja haittansa verrattuna WebAPI:hin. Alla on esimerkki palvelusta, joka on kehitetty MVC:llä
Syyanalyysi Perimmäinen syy verkkotunnusten väliseen ongelmaan on, että selaimella on alhaiset oikeudet molempiin pyyntöihin ja yleensä sallitaan puhelut vain paikallisen domainin resursseihin, ellei kohdepalvelin nimenomaisesti kerro, että verkkotunnusten väliset puhelut ovat sallittuja. Siksi, vaikka verkkotunnusten välinen ongelma johtuu selaimen toiminnasta, ratkaisu löytyy palvelinpuolelta. Koska ei ole mahdollista vaatia kaikkia asiakkaita vähentämään turvallisuutta.
ratkaisu Sekä ASP.NET MVC- että ASP.NET Web API -projektityypeille tein tutkimusta ja totesin, että seuraava skenaario on toteuttamiskelpoinen. ASP.NET MVC:tä varten sinun tarvitsee vain lisätä seuraava sisältö web.config-tiedostoon
ASP.NET Web API:lle yllä mainittujen asetusten lisäksi täytyy lisätä erityinen suunnittelu, joka on lisätä OPTIONS-metodi jokaiselle API-ohjaimelle, mutta ilman palautusta mitään. public string Options() { return null; HTTP 200 -vastaus tyhjällä runko }
Huomautus: Tämä toiminto voidaan tehdä myös jonkin verran tutkimusta, ja voi olla parempi suunnitella se suodattimeksi.
|