在dotnet core web api中支持CORS(跨域访问)

最近在写的Office add-in开发系列中,其中有一个比较共性的问题就是在add-in的客户端脚本中访问远程服务时,要特别注意跨域访问的问题。


关于CORS的一些基本知识,请参考维基百科的说明:https://en.wikipedia.org/wiki/Cross-origin_resource_sharing


那么,如果我们自己写一个服务,怎么样让他支持CORS呢?我下面用一个例子演示这个过程


1. 使用dotnet new webapi 这个指令创建一个基于dotnet core的项目

image

2.不要做任何修改,直接运行dotnet run

3.在浏览器中,输入 http://localhost:5000/api/values 查看结果

image


此时我们这个api其实是不支持跨域访问的,我们可以通过下面的免费的工具进行测试

image


4.通过简单的两句代码即可让这个api支持跨域访问

image

请注意,这一行代码需要写在AddMvc之后。

然后在需要暴露出来的API Controller上面启用CORS

image

5. 再次测试,我们就可以发现现在这个API已经支持跨域访问了

image

6.如果是需要给所有的API,都实现这个功能,那么下面这样的方式可能更加简化

image

7. 如果不想这么复杂,其实在对应的方法里面,显式地修改Response的Headers属性也是可以的。

Response.Headers.Add("Access-Control-Allow-Origin","*");


8. 如果你选择将这个API部署到Azure,而且使用的是 Web App这个服务的话,甚至可以做到更好:代码中不需要定义CORS属性,而是在平台上面定义

image

posted @   陈希章  阅读(7213)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示