参见:
asp.net webapi 跨域问题解决 No 'Access-Control-Allow-Origin' header i_huazaizuiaiw的专栏-CSDN博客
通过Ajax调用web api路径时报错:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
VS2012 自带的web api并不能支持跨域访问,如果需要,可以更改配置来实现。
1、更改Web.config文件的<system.webServer>节中,加上如下代码
<httpProtocol>
<!--实现跨域-->
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Headers" value="Content-Type,Token"/>
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
</customHeaders>
</httpProtocol>
2、然后需要配置Global.asax文件中,插入如下代码:
/// <summary>
/// 配置Ajax跨域访问
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.HttpMethod.ToUpper() == "OPTIONS")
{
Response.StatusCode = 200;
Response.End();
}
}
配置这两个文件之后,web api就可以跨域访问了。