首页  >  文章  >  web前端  >  如何在 IIS7 上启用跨源资源共享 (CORS):分步指南

如何在 IIS7 上启用跨源资源共享 (CORS):分步指南

Susan Sarandon
Susan Sarandon原创
2024-10-27 02:07:30509浏览

How to Enable Cross-Origin Resource Sharing (CORS) on IIS7: A Step-by-Step Guide

在 IIS7 上启用跨域资源共享:综合指南

简介

跨域-源资源共享 (CORS) 允许来自一个域的资源被来自不同源的应用程序获取和使用。要在 IIS7 上启用 CORS,请按照以下步骤操作:

配置

  1. 添加自定义标头:

    • 导航到托管域的 web.config 文件。
    • 中添加以下自定义标头:部分:
    <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>

故障排除

尽管进行了配置,如果您仍然收到 405 响应,可能是由于IIS7 对 HTTP 选项的处理。

选项 1:修改 IIS7 处理程序映射

  1. 打开 IIS 管理器。
  2. 导航到处理程序映射。
  3. 找到“OPTIONSVerbHandler”。
  4. 将“ProtocolSupportModule”更改为“IsapiHandler”。
  5. 将可执行文件设置为:

    %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

选项 2:处理代码中的 OPTIONS 动词

  1. 重写应用程序代码中的 BeginRequest 方法:

    protected void Application_BeginRequest(object sender,EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
    
        if(HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            // Handle pre-flight OPTIONS call from browser
            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 需要配置更新和潜在的故障排除。通过遵循上述步骤,您可以充满信心地实现跨域交互。

以上是如何在 IIS7 上启用跨源资源共享 (CORS):分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

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