|
Probleembeschrijving Wanneer een cross-domain aanroep ASP.NET MVC of een dienst geschreven ASP.NET Web API, wordt deze ontoegankelijk. Voortplantingsmethode
Oorzaakanalyse De fundamentele reden voor het cross-domain probleem is dat de browser lage privileges heeft op beide verzoeken en meestal alleen aanroepen naar resources in het lokale domein toestaat, tenzij de doelserver expliciet aangeeft dat cross-domain aanroepen zijn toegestaan. Daarom wordt het cross-domain probleem veroorzaakt door het gedrag van de browser, maar de oplossing ligt aan de serverzijde. Omdat het niet mogelijk is om van alle clients te eisen dat ze de beveiliging verminderen.
oplossing Voor zowel ASP.NET MVC- als ASP.NET Web API-projecttypes heb ik wat onderzoek gedaan en vastgesteld dat het volgende scenario haalbaar is. Voor ASP.NET MVC hoef je alleen de volgende content aan de web.config toe te voegen
Voor ASP.NET Web API's moet naast bovenstaande instellingen een speciaal ontwerp worden toegevoegd, namelijk het toevoegen van een OPTIONS-methode voor elke API-controller, zonder dat er iets wordt teruggegeven. publieke string Options() { return null; HTTP 200-antwoord met een leeg lichaam }
Let op: deze functie kan ook worden uitgevoerd met wat onderzoek, en het kan beter zijn om het als filter te ontwerpen.
|