javascript - 创建跨域 SignalR 连接时出现问题

标签 javascript signalr signalr.client

我在 2 个域上有网站:

  • a.com
  • b.com

b.com 托管 SignalR Hub,a.com 尝试创建与 b.com 的连接。

客户端JS:

var connection = $.hubConnection('http://b.com/');
var notificationHubProxy = connection.createHubProxy('notificationHub');
$.connection.hub.logging = true;
notificationHubProxy.client.resultReceived = function (result) {
    console.log(result);object.
}

服务器事件中心:

public class NotificationHub : Hub
{
    public void Hello()
    {
        Clients.All.hello();
    }

    public string Echo()
    {
        return "Notification hub is running normally";
    }

}

但我总是在客户端页面上收到以下错误:

SCRIPT5007: Unable to set property 'resultReceived' of undefined or null reference.

据我检查,“notificationHubProxy.client”未定义。

哪里错了?

最佳答案

这不是跨域问题。您正在混合使用动态代理无代理方法。 $.hubConnectioncreateHubProxy 来自无代理 API,但 .client 仅适用于动态代理。检查the documentation about both并且您将能够修复它(我不会进一步使用代码,因为我不知道您真正想使用哪种方法)。

关于javascript - 创建跨域 SignalR 连接时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24729175/

相关文章:

.net-core - SignalR 在通知/协商请求上抛出 405 错误

javascript - 使用 GWT 时找不到 Firebase Service worker(404 错误)

javascript - 如何使用 jQuery 在不同的端口上发送 AJAX 请求?

javascript - Vue.js 动态类名?

javascript - Signalr 在服务器中托管 javascript 客户端的客户端脚本

asp.net - .NET 客户端和服务器之间的 SignalR 安全连接

c# - SignalR 2 StartAsync 永远不会返回

signalr - SignalR 客户端是否会收到取消订阅的消息?

c# - 在异步方法中使用时 SignalR 调用不返回

javascript - 如何使用 jQuery 进行星级评分?