WebApi中跨域解决办法

时间:2022-08-28 12:10:09

因为“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前端的处理和服务器端回调的处理。