跨域问题的原因不解释了,直接设置两步就可以解决前端跨域问题
1.Gloabel.asax文件中
//解决跨域问题
protected void Application_BeginRequest(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
else
{
HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST,PUT, DELETE");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type");
}
}
2. Web.config中
<system.webServer>
</system.webServer>
之间加入代码
<system.webServer>
<!--解决跨域问题-->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Max-Age" value="30"/>
<add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />
</customHeaders>
</httpProtocol>
</system.webServer>
网上的博客有的提及了一个, 结果设置之后都出现405或者其他跨域提示, 设置这两步便可实现.net 前端跨域,