System.Web.Http.Cors配置跨域访问

System.Web.Http.Cors配置跨域访问的两种方式
  使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了不少文章,我就不在详细描述了,做为小白我只说一下本身的使用心得。在webapi中使用System.Web.Http.Cors配置跨域信息能够有两种方式。
  一种是在App_Start.WebApiConfig.cs的Register中配置以下代码,这种方式将在全部的webapi Controller里面起做用。web

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using System.Web.Http.Cors;api

namespace YDTG.Service
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务跨域

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

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);
}
}
}
配置文件以下,注意必定要加上httpcors

<add key="origins" value="http://localhost:9012,http://192.168.1.108:9012" />
1
  第二种方式就是在每一个webapiController类中设置,即每一个控制器个性化配置,以下代码。post

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";spa

return View();
}
}
}
注意事项
EnableCors共三个参数分别为origins、headers和methods。origins配置容许访问的域名,多个域名以逗号分隔便可,域名必定要完整,若是是ip地址前面要加上“http”,只使用IP的话必定会失效的。参数headers配置所支持的资源。参数methods配置支持的方法,get、post、put等。若是容许任意域名、任意资源、任意方法访问本身的webapi,则三个参数所有使用星号”*”便可。
“EnableCors(“http://localhost:9012,http://192.168.1.108:9012“, ““, ““)”中的配置若是出现错误的话不会报错,而是直接禁止未出如今配置表中的资源访问。
若是使用第一种方式那么能够从配置文件中读取网站列表,若是使用第二种方式,全部的参数只能使用常量。
---------------------
原文:https://blog.csdn.net/chaoyangzhixue/article/details/52251322 .net

相关文章
相关标签/搜索