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

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 16:41   11   0
            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
    {
      .....
    }

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP