Web Api 利用 cors 实现跨域

一.安装 cors

二.修改 Web.config

  <appSettings>
    <add key="cors:allowedMethods" value="*"/>
    <add key="cors:allowedOrigin" value="http://localhost:42021"/>
    <add key="cors:allowedHeaders" value="*"/>    
  </appSettings>  

(如果想允许所有请求, 则都设置为 "*")

三.修改 WebApiConfig.cs , 增加如下代码

        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务


            //跨域配置
            var allowedMethods = ConfigurationManager.AppSettings["cors:allowedMethods"];
            var allowedOrigin = ConfigurationManager.AppSettings["cors:allowedOrigin"];
            var allowedHeaders = ConfigurationManager.AppSettings["cors:allowedHeaders"];

            config.EnableCors(new EnableCorsAttribute(allowedOrigin, allowedHeaders, allowedMethods)
            {
                SupportsCredentials = true
            });

......

 

测试结果:

   

 

当然,也可以设置只让某一些api允许跨域:

 

       [HttpGet]
        [HttpPost]
        [Route("order/pager")]
        [EnableCors(origins:"http://localhost:27593",headers:"*",methods:"*")]
        public IHttpActionResult Pager([FromUri]Person p)
        {
            return Json(p);
        }

并且,这种设置也遵循就近原则:

如果像上面那样设置后,27593 则能够通过访问该接口获取到数据,而 42021 则不行 .

如果不想有什么限制,允许所有访问跨域,则可以只在 WebApiConfig.cs 中添加如下代码即可:

 config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

 

转载于:https://www.cnblogs.com/refuge/p/8371845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值