|
Popis problému Když se mezidoménové volání ASP.NET MVC nebo službu napsanou ASP.NET Web API, stává se nedostupnou. Metoda reprodukce
Analýza příčin Základním důvodem problému s křížovými doménami je, že prohlížeč má nízká oprávnění na oba požadavky a obvykle povoluje volání pouze na zdroje v lokální doměře, pokud mu cílový server výslovně neřekne, že jsou povolena volání přes domény. Proto, i když je problém mezi doménami způsoben chováním prohlížeče, řešení je na straně serveru. Protože není možné vyžadovat, aby všichni klienti snížili bezpečnost.
řešení Pro ASP.NET typy projektů s MVC i ASP.NET Web API jsem provedl průzkum a zjistil, že následující scénář je proveditelný. Pro ASP.NET MVC stačí přidat následující obsah do web.config
Pro ASP.NET webových API je kromě výše uvedených nastavení potřeba přidat speciální návrh, který spočívá v přidání metody OPTIONS pro každý API Controller, ale bez nutnosti cokoli vracet. public string Options() { return null; HTTP 200 odpověď s prázdným tělem }
Poznámka: Tuto funkci lze také provést s určitým výzkumem a možná bude lepší ji navrhnout jako filtr.
|