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>

 

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