2016-10-06 5 views
1

Guten Tag Ich habe den folgenden Code:Daten von AJAX erhalten und sie zu SignalR Hub senden

$('#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); 
    } 

Ich möchte Daten AJAX bilden Anruf bekommen und sie zu SignalR passieren, aber ich kann es nicht nur an die Arbeit . AJAX macht seine Arbeit, aber wenn ich versuche, Daten an SignaR Hub zu senden, passiert nichts. Für jede Hilfe im Voraus danke

UPDATE

Obwohl die oben nicht funktioniert, wenn ich die Funktion auf, ohne AJAX besitzen rufen dann funktioniert es:

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

UPDATE # 2 So sieht die betreffende Funktion in SIgnalR

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

    } 
+0

ist der "fertig" Callback-Hit nach der Antwort vom Server? Was hält das Ergebnis? –

+0

Nicht sicher über die erste Frage, aber das Ergebnis ist eine Zeichenfolge – Naruto

+0

Stellen Sie sicher, dass Ihre Verbindung vor dem Aufruf von 'setResult' geöffnet ist? Wenn Sie es nicht tun, wird es keinen Weg geben, Ihren Hub zu treffen. – bsoulier

Antwort

0

Ich sehe zwei mögliche Szenarien

  1. result ist JSON und nicht string, so stellen Sie sicher, dass Sie es ein string-SignalR sonst kein Feuer sind vorbei:

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

  1. Wenn das obige nicht funktioniert, ist das Problem Konnektivität mit Ihrem hub. Um sicherzustellen, dass es kein Datentyp-Mismatch ist, rufen Sie die Server-Funktion ohne Parameter und sehen, ob es getroffen:

chat.server.setResult();

und

public void SetResult()

nach dem UPDATE Ich bin davon überzeugt, dass Sie JSON zu Ihrem Hub passieren, aber es erwartet eine string ... Also gehen Sie mit # 1

+0

Es war die Nummer eins, ich war mir sicher, dass es String war und kümmerte mich nicht um zu überprüfen. Danke für alle – Naruto

Verwandte Themen