.NET中大型项目开发必备(2)--CORS跨域访问
前言:本系列文章适合有初/中级.NET知识的同学阅读。
(1)本系列文章,旨在讲述研发一个中大型项目所需要了解的一系列“基本构件”,并提供这些“基本构件”的【最简单】、【最快速】使用方法!!(并不深究技术原理)
(2)通过阅读本系列文章,能让你在正规“项目研发”方面快速入门+进阶,并能达成“小团队构建大网站”的目的。
(3)本系列文章采用的技术,已成功应用到人工智能、产业互联网、社区电商、游戏、金融风控、智慧医疗、等项目上。
CORS跨域访问问题往往出现在“浏览器客户端”通过ajax调用“服务端API”的时候。而且若是深究原理,还会发现跨域问题其实还分为【简单跨域】与【复杂跨域】这两种情况。
网上对解决跨域限制有很多说明文章,但绝大多数要么解决的不完善(比如,没有区分【简单跨域】与【复杂跨域】),要么就是解决方案过于复杂化,代码量巨大,尤其是在.Net Framework环境下。
先说.Net Framework环境下
本文提供一种极度简单且十分完善的跨域访问限制解决方案,只需一行代码。即在服务端开发工程中添加Global.asax文件,并让类继承自DeveloperSharp.Structure.Base.Global即可(需从NuGet引用DeveloperSharp包)。代码如下:
public class Global : DeveloperSharp.Structure.Base.Global { }
如此,就解决了跨域访问问题。
另外,此时若需要使用Application_Start等方法,则形式上需要稍做变化。示例如下:
public class Global : DeveloperSharp.Structure.Base.Global { protected override void ApplicationStart(object sender, EventArgs e) { Application["count"] = 100; } protected override void SessionStart(object sender, EventArgs e) { Application["count"] = Convert.ToInt32(Application["count"]) + 1; } }
再说.Net Core环境下
.Net Core对跨域问题做了相关优化,解决起来相对容易 。代码如下:
//在Startup.cs或Program.cs文件中进行设置 Services.AddCors(Option => Option.AddPolicy("CorsPolicy", Policy => Policy.AllowAnyOrigin() .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials()) ); -------------------------- app.UseCors("CorsPolicy");//须在app.UseMvc()之前
推荐阅读
- .NET中大型项目开发必备(1)–UUID全球通用唯一识别码
- .NET中大型项目开发必备(2)–CORS跨域访问
- .NET中大型项目开发必备(3)–数据库的负载均衡
- .NET中大型项目开发必备(4)–数据库的读写分离
- .NET中大型项目开发必备(5)–Web服务/WebApi的负载均衡
- .NET中大型项目开发必备(6)–IUtility工具介绍
- .NET中大型项目开发必备(7)–DataAccess数据库访问技术
- .NET中大型项目开发必备(8)–高效分页
- .NET中大型项目开发必备(9)--http请求调用(Post与Get)
- .NET中大型项目开发必备(10)--图片的裁剪、缩放、与加水印
- .NET中大型项目开发必备(11)--使用Redis缓存
- .NET中大型项目开发必备(12)--使用MQ消息队列
- .NET中大型项目开发必备(13)--DataAccess数据库访问技术(续)
- .NET中大型项目开发必备(14)--数据库的负载均衡(续)
如果文章对你有帮助,请点赞、收藏、关注(原创内容,欢迎转载,转载请注明出处) 技术支持+获取更多宝贵资源:微信扫描左侧二维码,备注“进群” 出处:https://www.cnblogs.com/DeveloperSharp/ 本文采用「CC BY 4.0」知识共享协议进行许可,转载请注明作者及出处。 |
posted on 2022-01-20 02:08 DeveloperSharp 阅读(880) 评论(0) 编辑 收藏 举报