首页  >  文章  >  web前端  >  为什么在 IIS7 上启用 CORS 时收到 405 Method Not allowed 响应?

为什么在 IIS7 上启用 CORS 时收到 405 Method Not allowed 响应?

DDD
DDD原创
2024-10-26 19:58:30968浏览

Why Am I Getting a 405 Method Not Allowed Response When Enabling CORS on IIS7?

在 IIS7 上启用跨域资源共享 (CORS)

在 IIS7 上启用 CORS 可能是一项艰巨的任务,尤其是当您遇到意外情况时行为,例如 200 响应之前的 405 响应。本文旨在阐明这个问题并提供有效的解决方案。

解决 405 响应

当 IIS7 拦截 HTTP OPTIONS 时,可能会出现 405 Method Not allowed 响应请求而不是您的应用程序。要解决此问题:

  1. 导航到 IIS7 中的“处理程序映射”部分。
  2. 找到“OPTIONSVerbHandler”条目。
  3. 将“ProtocolSupportModule”设置更改为“IsapiHandler” ."
  4. 将可执行文件设置为“%windir%Microsoft.NETFrameworkv4.0.30319aspnet_isapi.dll。”

替代解决方案:处理 BeginRequest 中的 OPTIONS 动词

如果上述步骤不能解决问题,您可以在 BeginRequest 方法中处理 HTTP OPTIONS 谓词,如下所示:

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();
    }
}

以上是为什么在 IIS7 上启用 CORS 时收到 405 Method Not allowed 响应?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn