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>
执行以上两步骤,问题解决!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?