信号器协商 url 失败

Signalr negotiate url fails

正在尝试启动信号器 运行。 我不断从服务器返回 2 个错误:

  1. GET 协商 url returns 500 内部服务器错误
  2. XMLHttpRequest 无法加载 http://localhost:10772//signalr/negotiate ... 请求的资源上不存在 'Access-Control-Allow-Origin' header。因此不允许访问来源“http://localhost:3000”。响应的 HTTP 状态代码为 500。

已提供屏幕截图。

有什么想法吗?

]1

好的,我自己发现的。拼写错误。 提到的集线器名称不正确。

已更改:
var proxy = this.connection.createHubProxy('chattAppHub');

至:
var proxy = this.connection.createHubProxy('ChatAppHub');

在后端:
[中心名称("ChatAppHub")]
public class ChatAppHub:中心...

里面startup.cs
var hubConfiguration = new HubConfiguration(); hubConfiguration.EnableDetailedErrors = true; appBuilder.MapSignalR(hubConfiguration); appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

这为我修复了它:

C# Startup.cs 调整:

app.MapSignalR(new HubConfiguration{EnableJSONP = true});

JavaScript 调整:

connection.start({ jsonp: true })

无论如何我们都需要 JSONP,所以对我们来说这是一个很好的解决方案。

我遇到了同样的问题,都是关于 CORS 的。 您应该在 Sturtup.cs 的 CORS 配置中添加主机 URL,请查看: