ASP.NET Core SignalR CORS 跨域处理

一、ASP.NET Core SignalR CORS 跨域问题

默认情况下,配置SignalR 集线器不支持跨域处理。

在使用 SignalR 项目中处理跨域操作,方案如下:

1.启用signalR ,注册跨域方案

        public void ConfigureServices(IServiceCollection services)
        {
            //设置跨域访问
            services.AddCors(options =>
            {
                //登录用户使用
                options.AddPolicy("any", builder =>
                {
                    builder.WithOrigins(
                        "http://crm.muzixiaohua.com/",
                        "http://localhost:64151",
                        "http://localhost:8080",
                        "http://localhost:8081",
                        "http://localhost:8082",
                        "null")
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();
                });
                //公开使用
                options.AddPolicy("all", builder =>
                {
                    builder.WithOrigins("*")
                    .AllowAnyMethod()
                    .AllowAnyHeader();
                });
            });
            //注册signalr
            services.AddSignalR();
        }

2.使用跨域方案,监听集线器

        public void Configure(IApplicationBuilder app, IHostingEnvironment env,
            IHttpContextAccessor accessor)
        {

            //注册signalr--指定跨域方案
            app.UseCors("any")
                .UseSignalR(route =>
                {
                    route.MapHub<App_Code.NoticeHub>("/ws_notice");
                });
            app.UseWebSockets();

            //方式处注册不支持跨域
            //app.UseSignalR(routes => routes.MapHub<App_Code.NoticeHub>("/ws_notice"));

        }

 

 

更多:

Asp.Net Core SignalR 分组使用示例

Asp.Net Core SignalR JavaScript客户端重新连接

HTML5 WebSocket+Asp.Net 实例四-用户标识,后台推送

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值