Maison  >  Article  >  interface Web  >  Pourquoi IIS7 renvoie-t-il une erreur 405 Méthode non autorisée lors de l'activation de CORS ?

Pourquoi IIS7 renvoie-t-il une erreur 405 Méthode non autorisée lors de l'activation de CORS ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 19:52:02996parcourir

Why Does IIS7 Return a 405 Method Not Allowed Error When Enabling CORS?

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

L'activation du partage de ressources d'origine croisée (CORS) sur IIS7 est nécessaire pour autoriser les demandes de ressources asynchrones être effectué sur différentes origines, en surmontant les restrictions de sécurité du navigateur. Cependant, des problèmes peuvent survenir lorsque IIS7 renvoie une erreur 405, méthode non autorisée avant une réponse 200 réussie.

Résolution de l'erreur 405, méthode non autorisée

L'erreur 405 est généralement se produit car IIS7 gère la réponse HTTP OPTIONS, qui précède la requête réelle, au lieu de la transmettre à votre application. Pour corriger cela :

  1. Accédez aux mappages de gestionnaires de votre site dans IIS7.
  2. Localisez et double-cliquez sur l'entrée "OPTIONSVerbHandler".
  3. Modifiez le "ProtocolSupportModule". vers "IsapiHandler".
  4. Définissez le chemin de l'exécutable sur :
    %windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll.

Avec ces modifications, IIS7 transmettra le HTTP Verbe OPTIONS à votre application.

Solution alternative : gestion du verbe OPTIONS dans BeginRequest

Alternativement, vous pouvez gérer le verbe HTTP OPTIONS manuellement dans la méthode BeginRequest de votre application :

<code class="c#">protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

    if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
    {
        // Handle HTTP OPTIONS pre-flight request
        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>

En implémentant l'une de ces approches, vous pouvez activer CORS sur IIS7 et résoudre l'erreur 405 pour garantir le succès des requêtes d'origine croisée.

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