Aktivieren von Cross-Origin Resource Sharing (CORS) auf IIS7
Cross-Origin Resource Sharing (CORS) ermöglicht die Ausführung von Webanwendungen auf verschiedenen Ursprüngen um HTTP-Anfragen aneinander zu stellen. Standardmäßig sind XHR-Anfragen an andere Domänen jedoch nicht zulässig.
CORS auf der Zieldomäne aktivieren
Um CORS auf der Zieldomäne zu aktivieren, fügen Sie die folgende benutzerdefinierte Funktion hinzu Header zur web.config-Datei:
<code class="xml"><?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" / <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" / <add name="Access-Control-Allow-Headers" value="Content-Type" / </customHeaders> </httpProtocol> </system.webServer> </configuration></code>
IIS7-Konfiguration
Nachdem Sie CORS in der Zieldomäne aktiviert haben, wird möglicherweise immer noch die Antwort „405-Methode nicht zulässig“ angezeigt. Dies liegt wahrscheinlich daran, dass IIS7 die HTTP-OPTIONS-Antwort und nicht Ihre Anwendung verarbeitet.
Um dieses Problem zu beheben:
Alternativ können Sie auf HTTP-OPTIONS im Code antworten
Sie können auch auf das HTTP-OPTIONS-Verb in Ihrer BeginRequest-Methode antworten:
<code class="csharp"> protected void Application_BeginRequest(object sender, EventArgs e) { HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*"); if (HttpContext.Current.Request.HttpMethod == "OPTIONS") { // Pre-flight OPTIONS call HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept"); HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000"); HttpContext.Current.Response.End(); } }</code>
Das obige ist der detaillierte Inhalt vonWie aktiviere ich Cross-Origin Resource Sharing (CORS) auf IIS7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!