博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webapi使用System.Web.Http.Cors配置跨域访问的几点注意事项
阅读量:6951 次
发布时间:2019-06-27

本文共 1845 字,大约阅读时间需要 6 分钟。

  hot3.png

#System.Web.Http.Cors配置跨域访问的两种方式   使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心得。在webapi中使用System.Web.Http.Cors配置跨域信息可以有两种方式。   一种是在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

  第二种方式就是在每个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();        }    }}

#注意事项

  1. EnableCors共三个参数分别为origins、headers和methods。origins配置允许访问的域名,多个域名以逗号分隔即可,域名一定要完整,如果是ip地址前面要加上“http",只使用IP的话一定会失效的。参数headers配置所支持的资源。参数methods配置支持的方法,get、post、put等。如果允许任意域名、任意资源、任意方法访问自己的webapi,则三个参数全部使用星号"*"即可
  2. "EnableCors("", "", "")"中的配置如果出现错误的话不会报错,而是直接禁止未出现在配置表中的资源访问。
  3. 如果使用第一种方式那么可以从配置文件中读取网站列表,如果使用第二种方式,所有的参数只能使用常量。

转载于:https://my.oschina.net/dongri/blog/735161

你可能感兴趣的文章
TPS和QPS的区别
查看>>
设计模式--模板方法模式
查看>>
Removing Nesting By Returning Early
查看>>
Jfinal weixin源码分析---碎碎念(看最后,有福利)
查看>>
[Java]HashMap的两种排序方式
查看>>
C++中const与指针、引用的分析(转自china_unix GP-King)
查看>>
mysql 保存emoji 4字节宽度字符串
查看>>
diff结果分析
查看>>
php UUID &分布式生成用不重复的随机数方法
查看>>
C语言中强制转换问题
查看>>
python--练习--for i in range(2,101)
查看>>
每天一个linux命令(25):chgrp命令
查看>>
【15】万魂杀服务器开发之原始NIO、Mina、Netty使用
查看>>
git rebase之前需要 commit 才行
查看>>
zabbix2.4.6升级zabbix3.0.8后无法发送报警邮件
查看>>
android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app
查看>>
fscanf、fprintf的返回值
查看>>
Notepad++ 快捷键
查看>>
当Win10软件窗口消失了怎么办
查看>>
我是怎么招聘程序员的
查看>>