NetCore IIS 发布 WebApi 跨域访问的两问题

在编写WebApi过程中,对于前端访问涉及到两个地方,走了较多弯路,以此留存。

1、解决跨域访问。

1.1创建的WebApi项目里,在StartUp类的ConfigureServices方法中添加如下代码:

 services.AddCors(option => option.AddPolicy("any", build =>
               build
               .AllowAnyHeader()
               .AllowAnyOrigin()
               .AllowAnyMethod()
               ));

1.2创建的WebApi项目里,在StartUp类的Configure方法中添加如下代码:

            //app.UseCors的位置,需要放在UseRouting()的后面,UseAuthorization()的前面。
            app.UseRouting();
            app.UseCors("any");//“any”与AddCors中AddPolicy的"any"一致
            app.UseAuthorization();

2、解决delete和put请求出错

在Visual Studio 发布的WebApi网站,前端访问的get、post请求正常,就是delete和put请求出错,可通过禁用 WebDAVModule模块解决。

在发布的网站根目录下,对web.config文件修改如下:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="false">
    <remove name="WebDAVModule" />
  </modules>
</system.webServer>

执行以上两步骤,问题解决!

posted @ 2022-01-26 08:56  暖风吹拂  阅读(312)  评论(0编辑  收藏  举报