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

解决从win2008服务器升级到win2016服务器后站点之间跨域问题

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

win2008服务器的iis是7.0版,而win2016服务器的iis是10版,所以在IIS配置上有很多变化,不用像在iis7.0下站点web.config文件中配置很多的属性。

比如:

1、MIME类型,在IIS10以前版本都必须自己添加一些类型,比如:.mp4,.mp3,.eot,.otf,.ttf,.woff,.woff2,.svg

IIS10以前版本:

<staticContent>
      <mimeMap fileExtension=".mp4" mimeType="application/octet-stream" />
</staticContent>

IIS10版本:

<staticContent>
      <!--不再配置常用类型--->
</staticContent>

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

win2008下IIS配置:

<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"/> <!--跟踪动词处理程序-->

  • win2016下解决文案:

    1、直接删除

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

    2、直接取消 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>



    版权说明:
    本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
    本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
    欢迎扫描右侧微信二维码与我们联系。
    ·上一条:IIS8.5中的强制https直接修改web.config文件和顶级域名跳转www和过滤子目录不强制跳转 | ·下一条:IIS配置允许跨域后,还是无法跨域,请检查<handlers>

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

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