WebAPI与SignalR开发中的跨域要注意的细节

            app.Map("/signalr", map =>
            {
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                { };
                map.RunSignalR(hubConfiguration);
            });

 

上面这个代码块中,引用动态库为:Microsoft.Owin.Cors  和   Microsoft ASP.NET.WebAPI.Cors

有2个核心问题:

1.Owin 库(构建项目自带)有自己的跨域,而且优先级非常高,会导致Microsoft.Owin.Cors无效

2.Microsoft.Owin.Cors 冲突于Web.config 的 Access-Control-Allow-Origin

代码正确方式:

1.Nuget 安装 Microsoft ASP.NET.WebAPI.Cors

2.Nuget 安装 Signalr

3.Nuget安装 类库 Microsoft.Owin.Cors

4.WebApiConfig 使用 config.EnableCors()

5.移除Web.config 中 httpProtocol 节点下的 Access-Control-Allow-Origin 相关内容

6.在跨域Conntroller中的类属性中加入

    [EnableCors("*", "*", "*")]
    public class FireInfoController : ApiController
    {
      .....
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值