WebApi中跨域请求的解决方案和原理

跨域请求仅发生在JavaScript发起Ajax请求时,浏览器对请求的限制,通常只允许访问同一个域中的资源,或者目标服务器明确的通知浏览器允许该域访问资源。

那么什么叫跨域的:主机地址或者ip地址或者域名,端口号,http协议或者https协议中有一种不相同的时候就是跨域。

使用Cors来解决跨域的问题

第一步在WebApi中使用Nuget引入包

Microsoft.AspNet.WebApi.Cors

第二部需要在App_Start的WebApiConfig文件中配置允许跨域的Origins、Headers,Methods。如果配置允许所有的域都可以访问资源可以使用*,但是这种访问设置的安全性不容忽视。

 1 public static class WebApiConfig
 2     {
 3         public static void Register(HttpConfiguration config)
 4         {
 5             // Web API 配置和服务
 6             config.EnableCors(new EnableCorsAttribute("http://localhost:51144,http://localhost:65024", "*", "*"));
 7             //config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
 8             // Web API 路由
 9             config.MapHttpAttributeRoutes();
10 
11             config.Routes.MapHttpRoute(
12                 name: "DefaultApi",
13                 routeTemplate: "api/{controller}/{id}",
14                 defaults: new { id = RouteParameter.Optional }
15             );
16         }
17     }

 

  

posted @ 2018-09-19 10:14  雨译  阅读(569)  评论(0编辑  收藏  举报