WebApi跨域

 跨域的原理 参考网址 :http://www.ruanyifeng.com/blog/2016/04/cors.html

  在我们WebAPI中怎么解决跨域问题那?直接实现

首先要给项目Nuget

 

然后修改webconfig

<appSettings>
    <!--跨域设置  开始-->
    <add key="cors:allowedMethods" value="*"/>
    <!--它的值要么是请求时Origin字段的值,要么是一个*,表示接受任意域名的请求。-->
    <add key="cors:allowedOrigin" value="http://localhost:8610"/>
    <add key="cors:allowedHeaders" value="*"/>
    <!--跨域设置  结束-->
  </appSettings>

重点是修改WebApiConfig文件

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            //跨域配置
            var allowedMethods = ConfigurationManager.AppSettings["cors:allowedMethods"];
            var allowedOrigin = ConfigurationManager.AppSettings["cors:allowedOrigin"];
            var allowedHeaders = ConfigurationManager.AppSettings["cors:allowedHeaders"];
            config.EnableCors(new EnableCorsAttribute(allowedOrigin, allowedHeaders, allowedMethods) {
                SupportsCredentials=true,//支持用户凭证
            });

            // Web API 配置和服务
            // 将 Web API 配置为仅使用不记名令牌身份验证。
            config.SuppressDefaultHostAuthentication();
            config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));

            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

        }
    }

这样我们的webapi 跨域问题就解决了!!!

 

posted @ 2017-12-22 15:11  Constructor  阅读(159)  评论(0编辑  收藏  举报