.Net下的CORS跨域设置

  • .Net下的CORS跨域设置已关闭评论
  • 173 次浏览
  • A+
所属分类:.NET技术
摘要

CORS跨域访问问题往往出现在“浏览器客户端”通过ajax调用“服务端API”的时候。而且若是深究原理,还会发现跨域问题其实还分为【简单跨域】与【复杂跨域】这两种情况。

CORS跨域访问问题往往出现在“浏览器客户端”通过ajax调用“服务端API”的时候。而且若是深究原理,还会发现跨域问题其实还分为【简单跨域】与【复杂跨域】这两种情况。

网上对解决跨域限制有很多说明文章,但绝大多数要么解决的不完善(比如,没有区分【简单跨域】与【复杂跨域】),要么就是解决方案过于复杂化,代码量巨大。

 

本文提供一种极度简单且十分完善的跨域访问限制解决方案,只需一行代码(仅支持.Net Framework)。即在服务端开发工程中添加Global.asax文件,并让类继承自DeveloperSharp.Structure.Base.Global即可(需从NuGet引用DeveloperSharp包)。代码如下:

    public class Global : DeveloperSharp.Structure.Base.Global     {      }

 如此,就解决了跨域访问问题。

(若需要解决.Net Core跨域问题,请参看这篇文章:.Net Core跨域实现

 

另外,此时若需要使用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;         }     }