ASP.NET WebApi 跨域(Cors)配置

第一步:下载nuget包

Install-Package Microsoft.AspNet.WebApi.Cors

第二步:在webApiConfig 中配置代码如下

public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            // Web API 跨域配置  引入跨域nuget包:Microsoft.AspNet.WebApi.Cors
            string cors_hosts = ConfigurationManager.AppSettings["cors_hosts"];
            if (!string.IsNullOrEmpty(cors_hosts))
            {
                var allowOrigins = cors_hosts;//最好来自配置文件夹 "*"
                var allowHeaders = "*";//最好来自配置文件夹
                var allowMethods = "*";//最好来自配置文件夹
                var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods)
                {
                    SupportsCredentials = true,
                    // 设置预检查时间
                    PreflightMaxAge = 20 * 60,
                };
                config.EnableCors(globalCors);
            }

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

            // Web API 全局异常捕捉
            config.Filters.Add(new ExceptionAPIFilter());

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

最后在web.config配置文件中appSettings节点中配置允许访问的路径

<appSettings>
    <!--支持跨域访问的域名,注意端口是必须的(除80),结尾不能加“/“-->
    <add key="cors_hosts" value="http://192.168.9.8:9527,http://192.168.9.176:9528,http://192.168.9.246:9529"/>
</appSettings>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章