|
Opis problema Ko se meddomenski klic ASP.NET MVC ali storitev, napisano ASP.NET spletni API, postane nedostopna. Metoda razmnoževanja - Uporabite predlogo za ustvarjanje najpreprostejšega ASP.NET projekta spletnega API-ja, ga razhroščite, da zagotovite, da deluje
- Ustvarite nov projekt z le eno HTML stranjo in naredite AJAX klic
- Odprite to stran v svojem brskalniku in našli boste naslednjo napako (405: Metoda ni dovoljena)
Opomba: Enaka situacija se dogaja v ASP.NET prometni nesreči. V nekaterih primerih se MVC lahko uporablja tudi neposredno za razvoj storitev, kar ima svoje prednosti in slabosti v primerjavi z WebAPI. Spodaj je primer storitve, razvite z uporabo MVC
Analiza vzrokov Temeljni razlog za problem med domenami je, da ima brskalnik nizke privilegije na obeh zahtevah in običajno dovoljuje klice le na vire v lokalni domeni, razen če mu ciljni strežnik izrecno pove, da so klici med domenami dovoljeni. Zato, čeprav je problem med domenami posledica vedenja brskalnika, je rešitev na strežniški strani. Ker ni mogoče zahtevati, da vsi odjemalci zmanjšajo varnost.
rešitev Za ASP.NET MVC in ASP.NET vrste spletnih API-jev sem naredil nekaj raziskav in ugotovil, da je naslednji scenarij izvedljiv. Za ASP.NET MVC morate v web.config dodati le naslednjo vsebino
Za ASP.NET spletne API-je je poleg zgornjih nastavitev treba dodati poseben načrt, in sicer dodati metodo OPTIONS za vsak API kontroler, vendar brez vračanja česarkoli. public string Options() { return null; HTTP 200 odgovor s praznim telesom }
Opomba: To funkcijo je mogoče opraviti tudi z nekaj raziskovanja, zato je morda bolje, da jo oblikujete kot filter.
|