您的位置:首页 > 编程语言 > ASP

Asp.Net WebApi 启用CORS跨域访问

2015-12-31 17:07 615 查看
WebApi中启用CORS跨域访问

1.安装 Nugget包Microsoft.AspNet.Cors

2.WebApiApplication中启用跨域功能,默认是不可用的

public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//启用跨域
/*
* 注意,必须先启用跨域,然后,启用注册路由
*/
GlobalConfiguration.Configuration.EnableCors();

GlobalConfiguration.Configure(WebApiConfig.Register);
}
}


3.[EnableCors]在Controller或Action配置跨域方案

//支持客户端凭据提交
[EnableCors("http://localhost:51421", "*", "*", SupportsCredentials = true)]
//[EnableCors("http://localhost:51421", "*", "*")]
// [EnableCors("*", "*", "*")]
public string GetOne()
{
return "1234";
}


客户端访问,带客户端凭据信息

$.ajax({
url: apiUrl.getCookie('getone'),
// url: apiUrl.getCookie('gettwo'),
data: { age: 11 },
xhrFields: {
withCredentials: true  //支持附带详细信息
},
crossDomain: true,//请求偏向外域
success: function (data) {
alert(data);
}
});


4.在controller中,指定[EnableCors]对所有的action,都起作用,然而,还可以单独指定到某个action

[EnableCors("*", "*", "*")]
public class CookieOneController : ApiController
{
//支持客户端凭据提交
[EnableCors("http://localhost:51421", "*", "*", SupportsCredentials = true)]
//[EnableCors("http://localhost:51421", "*", "*")]
// [EnableCors("*", "*", "*")]
public string GetOne()
{
return CookieHelper.GetString("username");
}

[HttpGet]
[HttpPost]
public string GetTwo()
{
return "1234";
}
}


资料地址:

/article/1308124.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: