Heim  >  Artikel  >  Web-Frontend  >  Wie aktiviere ich Cross-Origin Resource Sharing (CORS) auf IIS7?

Wie aktiviere ich Cross-Origin Resource Sharing (CORS) auf IIS7?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 04:39:02972Durchsuche

How to Enable Cross-Origin Resource Sharing (CORS) on IIS7?

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:

  1. Navigieren Sie zu den Handler-Zuordnungen der Site in IIS7.
  2. Suchen Sie die Zuordnung „OPTIONSVerbHandler“.
  3. Ändern Sie „ProtocolSupportModule“ in „IsapiHandler“.
  4. Setzen Sie die ausführbare Datei auf „%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll“.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn