javascript - 尝试连接跨域托管信号服务时,signalR 连接失败

标签 javascript angularjs cross-domain signalr signalr.client

我正在尝试在网站上使用 signalR。 SignalR 是一项自托管服务。 SignalR 网址:http://localhost8080:/signalr

网站正在运行@ http://localhost:31775/

我在浏览器控制台上收到错误

GET http://localhost:31775/signalr/negotiate?connectionData=%5B%5D&clientProtocol=1.3&_=1442784297380 404 (Not Found)

此错误告诉我下面的代码尝试生成的代理正在使用网站 url,即相对路径。但是我想使用托管我的 signalR 服务的绝对路径。

AngularJS 工厂

app.factory("signalRService", ['$', '$rootScope', function ($, $rootScope) {
    var proxy;
    var connection;

    return {
        connect: function () {
            connection = $.hubConnection();
            proxy = connection.createHubProxy('myHub');
            connection.start();
            proxy.on('addMessage', function (tags) {
                $rootScope.$broadcast('addMessage', tags);
            });
        },
        send: function () {
            proxy.invoke('send');
        },
    };
}]);

我还为此添加了 javascript 引用。

<script src="js/jquery.signalR-2.0.3.min.js"></script>

验证我的自托管是否正在运行文件。我检查了http://localhost:8080/signalr/hub在浏览器上

enter image description here

最佳答案

您缺少的是代理的一些配置:

connection = $.hubConnection('http://localhost:8080/signalr');

如何概括该代码段(url 可以是您的 connect 方法的参数,或者任何适合您的 Angular 策略的内容)取决于您。

关于javascript - 尝试连接跨域托管信号服务时,signalR 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32684566/

相关文章:

javascript - 是否有一个全局浏览器对象我可以添加一个监听器来捕获所有抛出的错误?

javascript - 如何找到两个字符串之间的共同单词并返回排序后的单词

javascript - 范围变量应用问题期间的 Angular 快速单击

javascript - 如何使用ng-checked在angularJs中预选复选框

javascript - 我可以检测到跨域 iframe 包含 404 响应吗?

ajax - WebKit 是那些实现即将到来的 x-domain XMLHttpRequest 功能的浏览器之一吗?

php - 如何更改默认设计?

php - 让某人向网站添加文本

javascript - 如果我有 div 中的数据,有人可以更改发送到服务器的数据吗

javascript - 如何在控制台中记录字符串变量原型(prototype)属性?