[C#] Asp.net Core SignalR 跨域设置

  参考:https://blog.csdn.net/hefeng_aspnet/article/details/117777995?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-117777995-blog-106515942.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-117777995-blog-106515942.pc_relevant_recovery_v2&utm_relevant_index=6

  今天试着配置SignalR并测试下连接,发现同域的时候没有问题,但跨域的时候就报错了。

网上找了很久,都是允许任意跨域, 类似这种方式(options.AddPolicy("AllowAll",o => o.withOrigins(*).AllowAnyMethod().AllowAnyHeader()); app.UseCors("AllowAll");),这个感觉不靠谱。

最终根据参考文章修改后就可以了 -->略微不同,要修改下。不过本来是想让SignalR也使用app.UseCors()里的策略,这个没找到怎么解决。

 

前端 Asp.Net Core MVC 3.1 : localhost:63004

后端 Asp.Net Core 3.1: localhost:54017

 

报错:

这个是我在前端localhost:63004 调试工具里 建立SignalR访问 后端 localhost:54017

 

解决方案

  1.添加红色部分

  app.UseEndpoints(endpoints =>
  {
       //SignalR Hub
       endpoints.MapHub<ChatHub>("/chatHub").RequireCors(t => t.SetIsOriginAllowed((host) => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials());
  });

2.确保app.UseRouting()和app.UseCore("XXX")的顺序。
 app.UseRouting();
 app.UseCore("XXX");

最终效果图(从localhost:63004访问localhost:54017):

 

posted @   WikiChen  阅读(984)  评论(4编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示