Maison  >  Article  >  interface Web  >  Comment activer le partage de ressources cross-origine (CORS) sur IIS7 ?

Comment activer le partage de ressources cross-origine (CORS) sur IIS7 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 04:39:02972parcourir

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

Activation du partage de ressources d'origine croisée (CORS) sur IIS7

Le partage de ressources d'origine croisée (CORS) permet aux applications Web de s'exécuter sur différentes origines pour se faire des requêtes HTTP. Cependant, par défaut, les requêtes XHR vers d'autres domaines ne sont pas autorisées.

Activation de CORS sur le domaine cible

Pour activer CORS sur le domaine cible, ajoutez la personnalisation suivante en-têtes au fichier web.config :

<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>

Configuration IIS7

Après avoir activé CORS sur le domaine cible, vous pouvez toujours rencontrer une réponse 405 Méthode non autorisée. Cela est probablement dû au fait qu'IIS7 gère la réponse HTTP OPTIONS au lieu de votre application.

Pour résoudre ce problème :

  1. Accédez aux mappages de gestionnaires du site dans IIS7.
  2. Localisez le mappage « OPTIONSVerbHandler ».
  3. Changez le « ProtocolSupportModule » en « IsapiHandler ».
  4. Définissez l'exécutable sur « %windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll ».

Vous pouvez également répondre aux OPTIONS HTTP dans le code

Vous pouvez également répondre au verbe HTTP OPTIONS dans votre méthode BeginRequest :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn