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

关于ASP.NET MVC WebApi接口跨域访问的解决方案

2017-03-17 10:37 597 查看
1.一般的解决方案里面有一个Filters文件夹,需要在这个文件夹里面添加一个类文件

    public class CrossSiteAttribute: System.Web.Http.Filters.ActionFilterAttribute

    {

        private const string Origin = "Origin";

         /// <summary>

         /// Access-Control-Allow-Origin是HTML5中定义的一种服务器端返回Response header,用来解决资源(比如字体)的跨域权限问题。

         /// </summary>

         private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin";

        /// <summary>

        ///  originHeaderdefault的值可以使 URL 或 *,如果是 URL 则只会允许来自该 URL 的请求,* 则允许任何域的请求

        /// </summary>

        private  string originHeaderdefault = "*";//"http://192.168.13.7:8002";

         /// <summary>

         /// 该方法允许api支持跨域调用

         /// </summary>

         /// <param name="actionExecutedContext"> 初始化 System.Web.Http.Filters.HttpActionExecutedContext 类的新实例。</param>

         public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)

         {

             actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault);

         }

}

2.在WebApi接口内需要引用该文件

 [CrossSite]   --是创建的类

    public class WebApiController : ApiController

    {

}

3.当前接口内就可以跨域访问了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: