web-dev-qa-db-fra.com

Paramètres CORS pour IIS 7.5

Quelqu'un pourrait-il m'aider, convertir le code suivant pour l'utiliser dans le web.config dans IIS 7.5 et où dans le fichier web.config je devrais placer chaque morceau de code?

# 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]
9
Vernon Wainohu

Si vous demandez cela pour résoudre le problème [~ # ~] cors [~ # ~] , vous pouvez suivre cette solution ci-dessous.

REMARQUE: Avant d'ajouter tout cela, vous devez considérer les problèmes de sécurité.

  1. Ajoutez ceci à votre fichier web.config:

    <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. Si vous avez un paramètre Content-type dans votre appel ajax ou si vous faites une demande PUT, ceux-ci sont considérés comme PreFlight requêtes.Les requêtes en amont font [~ # ~] option [~ # ~] demande avant d'envoyer la requête principale ( PUT, DELETE, etc.) .Vous pouvez ajouter la méthode ci-dessous à votre fichier global.asax pour passer avec succès le processus OPTION:

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

Pour avoir plus d'informations sur les demandes de contrôle en amont, vous pouvez vérifier ici

Pour la solution numéro 2, vous pouvez obtenir des informations détaillées de ici

23
Zehra Subaş