使用SignalR 2.0建立跨域连接时出错

时间:2014-01-31 06:58:36

标签: javascript signalr

当我打算使用它来进行跨域时,我在调用start()函数时会收到错误消息。 jquery.signalR-2.0.2.min.js出错。 错误信息是 “未捕获错误:SignalR:加载集线器时出错。请确保您的集线器引用正确,例如。”

I am using server side code

Startup.cs class code is:

       [assembly: OwinStartup(typeof(SignalRNew.Startup))]

       namespace SignalRNew
       {
           public class Startup
           {
                public void Configuration(IAppBuilder app)
                {
                   app.Map("/signalr", map =>
                   {
                       map.UseCors(CorsOptions.AllowAll);
                       var hubConfiguration = new HubConfiguration
                       {
                            EnableJSONP = true
                        };
                       map.RunSignalR(hubConfiguration);
                   });
                }
             }
          }

我使用客户端脚本是:

  <!DOCTYPE html>
     <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title></title>
         <script src="/Scripts/jquery-1.6.4.min.js"></script>
         <script src="/Scripts/jquery.signalR-2.0.2.min.js"></script>
      </head>
    <body>
      <div></div>
      <script type="text/javascript">
        $.connection.hub.url = 'http:\\localhost:2100\signalr';
        $.connection.hub.start().done(function () {
           alert('Now connected');
        });
      </script>
     </body>
     </html>

 kindly reply...

2 个答案:

答案 0 :(得分:0)

尝试在客户端启用日志记录,并查找错误消息或警告:

http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#logging

启用日志记录(使用生成的代理)

$.connection.hub.logging = true;
$.connection.hub.start();

启用日志记录(不使用生成的代理)

var connection = $.hubConnection();
connection.logging = true;
connection.start();

答案 1 :(得分:0)

请尝试按照以下步骤创建代理。

var connection=$.hubConnection();
var proxy=connection.createHubProxy("hubName");
connection.start().done(function () {
       alert('Now connected');
    });

您已连接网址而未提供集线器名称。这可能是问题所在。