关于net core 站点通过iis部署,跨域配置遇到的问题

环境:netcore 5.0   iis 8.5

在使用iis部署netcore程序时碰到一个小问题,跨域,首先检查配置

 配置正常,且中间件已启用

很奇怪,ajax调用依然跨域.意识到问题没有那么简单了,因为netcore web设置的进程内托管选择进程内托管,意味着将 .NetCore 应用程序的工作进程托管到 IIS 的工作进程 w3wp.exe 中,使用的 IIS 进程内服务器,即使用的是:IISHttpServer.意味着可能iis将请求拦截掉了.检查发现果然,如下图:

 默认的会添加跨域配置,但是不知道为什么没有生效,所以修改web.config文件,去掉默认配置,如下:

<system.webServer>
  <httpProtocol>
            <customHeaders>
                <remove name="Access-Control-Allow-Origin" />
                <remove name="Access-Control-Allow-Methods" />
                <remove name="Access-Control-Allow-Headers" />
            </customHeaders>
        </httpProtocol>
</system.webServer>

ok,可以正常访问了.

原文地址:https://www.cnblogs.com/GreenLeaves/p/15503666.html