专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

IIS配置允许跨域后,还是无法跨域,请检查<handlers>

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:55:03       共计:3628 浏览

IIS配置允许跨域后,还是无法跨域,提示 index.html:1 Access to XMLHttpRequest at '        XXXX' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.请检查

<system.webServer>
    <httpProtocol>
      <!--跨域配置开始-->
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <!--支持的http 动作-->
        <add name="Access-Control-Allow-Headers" value="AuthToken, Authorization, Origin, Content-Type, Accept, X-Requested-With" />
        <!--响应头 请按照自己需求添加 这里新加了token这个headers-->
        <add name="Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        <!--允许请求的http 动作-->
      </customHeaders>
      <!--跨域配置结束-->
    </httpProtocol>
    
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
      <remove name="OPTIONSVerbHandler"/>
      <remove name="TRACEVerbHandler"/>
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
        preCondition="integratedMode,runtimeVersionv4.0"/>
    </handlers>
 
   
  </system.webServer>


关键问题是这两行代码

    <remove name="OPTIONSVerbHandler"/> <!--选择动词处理程序-->
    <remove name="TRACEVerbHandler"/>  <!--跟踪动词处理程序-->

方式一:直接去掉这两行代码

      <system.webServer>
        <httpProtocol>
          <!--跨域配置开始-->
          <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
            <!--支持的http 动作-->
            <add name="Access-Control-Allow-Headers" value="AuthToken, Authorization, Origin, Content-Type, Accept, X-Requested-With" />
            <!--响应头 请按照自己需求添加 这里新加了token这个headers-->
            <add name="Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
            <!--允许请求的http 动作-->
          </customHeaders>
          <!--跨域配置结束-->
        </httpProtocol>
        
        <handlers>
          <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
          <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
            preCondition="integratedMode,runtimeVersionv4.0"/>
        </handlers>
     
       
      </system.webServer>

方法二:直接取消 handlers

    <system.webServer>
        <httpProtocol>
          <!--跨域配置开始-->
          <customHeaders>
            <add name="Access-Control-Allow-Origin" value="*" />
            <!--支持的http 动作-->
            <add name="Access-Control-Allow-Headers" value="AuthToken, Authorization, Origin, Content-Type, Accept, X-Requested-With" />
            <!--响应头 请按照自己需求添加 这里新加了token这个headers-->
            <add name="Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
            <!--允许请求的http 动作-->
          </customHeaders>
          <!--跨域配置结束-->
        </httpProtocol>
        
        <!--
    <handlers>
          <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
          <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
            preCondition="integratedMode,runtimeVersionv4.0"/>
        </handlers>
    -->
     
       
      </system.webServer>

其他
IIS的处理程序映射Mapping配置文件路径

C:\Windows\System32\inetsrv\config\applicationHost.config
参考的官方文档地址:

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/handlers/add

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:解决从win2008服务器升级到win2016服务器后站点之间跨域问题 | ·下一条:ASP.NET MVC中设置跨域_WebApi跨域(CORS)配置

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有