2016-10-06 96 views
1

好日子 我有以下代码:获取数据,并将它们发送到SignalR枢纽

$('#ElementId').click(function() {    
      $.ajax({ 
      type: "POST", 
      url: "URL", 
      data: {//DATA } 
     }) 
       .done(function (result) { 
        FillList(result); 
       }); 
} 

    function FillList(result) 
    { 
    var chat = $.connection.chatHub; 
    chat.server.setResult(result); 
    } 

我想要得到的数据形成AJAX调用并传递给SignalR,但我只是不能得到它的工作。 AJAX做了它的工作,但是当我尝试向SignaR Hub发送数据时,没有任何反应。 任何帮助预先感谢您

UPDATE

虽然上面当我打电话就可以了函数自己没有AJAX不工作,然后它的工作原理:

$('#ElementId').click(function() { 
     FillList("Test"); 
    } 

更新# 2 这就是所讨论的功能如何在SIgnalR中查找

public void SetResult(string TestJSON) 
    { 
     try 
     { 
      if (!String.IsNullOrEmpty(TestJSON)) 
      { 
      //TODO  
      }     
     } 
     catch (Exception ex) 
     { 
      throw ex 
     } 

    } 
+0

是从服务器响应后完成的'回调命中吗?结果是什么? –

+0

不确定第一个问题,但结果是一个字符串 – Naruto

+0

在调用'setResult'之前,你确定你的连接是打开的吗?如果你不这样做,就没有办法打到你的中心。 – bsoulier

回答

0

我看到两种可能的情况

  1. resultJSON,而不是string,所以请确保您传递一个stringSignalR否则也不会火:

chat.server.setResult(JSON.stringify(result));

  • 如果上述不起作用,问题是与您的hub连接。为了确保没有任何数据类型不匹配,调用不带参数的服务器功能,看看是否它被击中:
  • chat.server.setResult();

    public void SetResult()

    更新后我确信你正在通过JSON到你的中心,但它期望string ...所以去#1

    +0

    这是头号我确定它是字符串,并没有打扰检查。 Thx帮助大家 – Naruto