WebAPI 跨域
2021-01-18 19:25
标签:anon span 方法 LLC 直接 数据 htm bsp dac
第一种在Web.config中

12 3 4 5 6 7

第二种方式,在项目中用NuGet安装microsoft.aspnet.webapi.cors(支持多个域名跨域)
如果遇到 System.FieldAccessException: 方法“System.Web.Http.GlobalConfiguration..cctor()”尝试访问字段“System.Web.Http.GlobalConfiguration.CS$9__CachedAnonymousMethodDelegate2”失败。
这个问题,我这边 是因为 Microsoft.AspNet.WebApi 2 没有安装,安装之后就没问题了
1.然后在App_Start文件夹下面的WebApiConfig.cs文件夹配置跨域
2.也可以在配置文件中设置,然后读取配置文件
在appSettings节点中配置
1 2 3
然后在App_Start文件夹下面的WebApiConfig.cs文件夹配置跨域

1 public static void Register(HttpConfiguration config) 2 { 3 //跨域配置 4 //config.EnableCors(new System.Web.Http.Cors.EnableCorsAttribute("http://localhost:31551,http://localhost:6449", "*", "*")); 5 6 var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"]; 7 var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"]; 8 var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"]; 9 var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods); 10 config.EnableCors(globalCors); 11 12 config.Routes.MapHttpRoute( 13 name: "DefaultApi", 14 routeTemplate: "api/{controller}/{action}/{id}", 15 defaults: new { id = RouteParameter.Optional } 16 ); 17 }

3.如果你只想对某一些api做跨域,可以直接在API的类上面使用特性标注即可。
先在App_Start文件夹下面的WebApiConfig.cs启用Cors
然后在接口前面加上标注就行了

1 [System.Web.Http.Cors.EnableCors(origins: "http://localhost:31551", headers: "*", methods: "GET,POST,PUT,DELETE")] 2 public class ChargingController : ApiController 3 { 4 ///5 /// 得到所有数据 6 /// 7 ///返回数据 8 [HttpGet] 9 public string GetAllChargingData() 10 { 11 return "Success"; 12 } 13 }

参考 http://www.cnblogs.com/moretry/p/4154479.html
http://www.cnblogs.com/landeanfen/p/5177176.html#_labelTop
https://www.cnblogs.com/tpfOfBlog/p/6709260.html
WebAPI 跨域
标签:anon span 方法 LLC 直接 数据 htm bsp dac
原文地址:https://www.cnblogs.com/X-Jonney/p/12175824.html