App_Start.WebApiConfig.cs的Register中配置如下代码,
这种方式将在所有的webapi Controller里面起作用。
using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Web.Http.Cors; namespace YDTG.Service { public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API 配置和服务 // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); //这是重点,从配置文件的appsettings节点中读取跨域的地址 var cors = new EnableCorsAttribute(ConfigurationManager.AppSettings["origins"], "*", "*"); config.EnableCors(cors); } } }
配置文件如下,注意一定要加上http
<add key="origins" value="http://localhost:9012,http://192.168.1.108:9012" />
在每个webapiController类中设置,即每个控制器个性化配置,如下代码。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http.Cors; using System.Web.Mvc; namespace Service.Controllers { [EnableCors("http://localhost:9012,http://192.168.1.108:9012", "*", "*")] public class HomeController : Controller { public ActionResult Index() { ViewBag.Title = "Home Page"; return View(); } } }
本文引自:https://blog.csdn.net/chaoyangzhixue/article/details/52251322
webapi使用System.Web.Http.Cors配置跨域访问的两种方式
原文:https://www.cnblogs.com/ggll611928/p/14439209.html