[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):
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!