ASP.NET WEB API System.Web.Http.Cors 配置跨域

1,建立MVC WEBAPI项目后,需要对项目安装System.Web.Http.Cors
在VS工具栏目下NuGet包管理工具里,点击打开,然后在窗口浏览处输入 Microsoft.AspNet.WebApi.Cors 选择对应栏目和项目进行安装
在这里插入图片描述
2.安装完毕后再WebApiConfig.js类中手动添加引用 using System.Web.Http.Cors;
在Web API 配置和服务中增加
// 将 Web API 配置为仅使用不记名令牌身份验证。
//跨域配置

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

在这里插入图片描述
完整代码

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

namespace SXGJJSTJAPI
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务
            //跨域配置
            config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

            // Web API 路由
            config.MapHttpAttributeRoutes();
            
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

3.在项目Controllers文件下对应的API触发器同样增加引用 using System.Web.Http.Cors;
在触发器头部生命跨域方式 EnableCors("", "", “*”)

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

namespace SXGJJSTJAPI.Controllers
{
    [Authorize]
    [RoutePrefix("api/STY")]//路由
    [EnableCors("*", "*", "*")]//跨域配置
    public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }
}

注意事项
EnableCors共三个参数分别为origins、headers和methods。origins配置允许访问的域名,多个域名以逗号分隔即可,域名一定要完整,如果是ip地址前面要加上“http”,只使用IP的话一定会失效的。参数headers配置所支持的资源。参数methods配置支持的方法,get、post、put等。如果允许任意域名、任意资源、任意方法访问自己的webapi,则三个参数全部使用星号”*”即可。

还有一种方式是在WebApiConfig.js 跨域配置中利用Web.config进行配置可访问的域名或者IP地址,读取config文件然后根据文件配置的信息进行配置,原理相同。

<add key="origins" value="https://baidu.com:9012,http://192.168.101.67:9012" />
 var cors = new EnableCorsAttribute(ConfigurationManager.AppSettings["origins"], "*", "*");
  config.EnableCors(cors);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值