2015-02-12 9 views
6

Könnte mir bitte jemand helfen, den folgenden Code für die Verwendung in der web.config in IIS 7.5 konvertieren und wo in der Datei web.config sollte ich jedes Stück Code platzieren?CORS-Einstellungen für IIS 7.5

# Always set these headers. 
Header always set Access-Control-Allow-Origin "*" 
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" 
Header always set Access-Control-Max-Age "1000" 
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" 

# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request. 
RewriteEngine On 
RewriteCond %{REQUEST_METHOD} OPTIONS 
RewriteRule ^(.*)$ $1 [R=200,L] 
+0

gemäß der Empfehlung von Website - http://enable-cors.org/server_iis7.html i‘ Ich habe zu meiner web.config hinzugefügt. aber ich bekomme die folgende Nachricht in Firefox - Cross-Origin-Anfrage blockiert: Die gleiche Herkunft Richtlinie verbietet das Lesen der Remote-Ressource bei https://lrpspsprd02.lhl.co.nz/ZFP/Dicom/UrlAuthentication?mode=StandAloneLaunch. Dies kann behoben werden, indem Sie die Ressource in dieselbe Domäne verschieben oder CORS aktivieren. –

Antwort

17

Wenn Sie diese fragen CORS zu lösen Problem, können Sie diese Lösung unten folgen.

HINWEIS: Bevor Sie all dies hinzufügen, sollten Sie Sicherheitsfragen berücksichtigen.

  1. Fügen Sie diese zu Ihrer web.config-Datei:

    <system.webServer> 
        <httpProtocol> 
        <customHeaders> 
         <add name="Access-Control-Allow-Origin" value="*" /> 
         <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD, OPTIONS" /> 
         <add name="Access-Control-Allow-Credentials" value="true"/> 
         <add name="Access-Control-Allow-Headers" value="X-Requested-With, origin, content-type, accept" /> 
        </customHeaders> 
        </httpProtocol> 
    </system.webServer> 
    
  2. Wenn Sie Content-type Parameter in Ihrer Ajax Anruf haben oder Sie tun PUT request.Those als betrachtet werden PreFlight requests.Preflight Anfragen tun OPTION Anfrage vor dem Senden der Hauptanforderung (PUT, DELETE usw.) .Sie können add unten Methode zu Ihrer global.asax-Datei erfolgreich OPTION Prozess weitergeben müssen:

    protected void Application_BeginRequest() 
    { 
        if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS") 
        { 
         Response.Flush(); 
        } 
    } 
    

To have more information about Preflight requests you can check here

For solution number 2 you can have detailed information from here

+0

Ich musste die folgenden Zeilen vor setzen, um einen doppelten Eintragsfehler zu vermeiden: Fabien