因为“Access-Control-Allow-Origin”是HTML5中新增的特性,所以IE10以下浏览器不支持。
using System.Web.Http.Filters; namespace MvcApplication1.CustomFilter { public class CrossSiteAttribute : ActionFilterAttribute { private const string Origin = "Origin"; private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin"; private const string originHeaderdefault = "*"; public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault); } } }
服务器端代码示例:
[CrossSite] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; }
服务器端只需要把过滤器的标签[CrossSite]写上,服务器端就支持跨域了。省去了Web前端的处理和服务器端回调的处理。