信号器协商URL失败

时间:2016-10-12 18:33:09

标签: signalr signalr-hub

尝试让信号灯启动并运行。 我不断从服务器上收到2个错误:

  1. GET negotitate url返回500内部服务器错误
  2. XMLHttpRequest无法加载http://localhost:10772//signalr/negotiate ... No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。响应的HTTP状态代码为500。
  3. 提供截图。

    有什么想法吗?

    enter image description here] 1

3 个答案:

答案 0 :(得分:1)

好的,自己发现了。拼写错误。 提到的中心名称不正确。

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

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

在后端:
[HubName( “ChatAppHub”)]
公共类ChatAppHub:Hub ...

内部启动.s
var hubConfiguration = new HubConfiguration(); hubConfiguration.EnableDetailedErrors = true; appBuilder.MapSignalR(hubConfiguration); appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

答案 1 :(得分:0)

这为我解决了这个问题:

C#Startup.cs调整:

localhost:80
bind 0.0.0.0
proxy / 127.0.0.1:10240

JavaScript调整:

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

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

答案 2 :(得分:0)

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

https://stackoverflow.com/a/59891997/854405