2 Stimmen

JQuery post > Erfolg wird nicht ausgelöst

Ich hatte ein Problem mit der Post-API von jQuery.

   $(".MGdi").click(function () { 
      id=$(this).attr("rel")
      $.post( 'Mdeger.asp?cmd=MG', { id: id, drm: $(this).html()} ,
      function( data ) {
          var $response=$(data);
               var snc = $response.find('#snc').html();
          alert(snc);
      },"application/x-www-form-urlencoded");  
    });

Ein anderer Weg ist:

$(".Pasif").click(function () { 
  id=$(this).attr("rel")
  $.post( 'Mdeger.asp?cmd=Pasif', { id: id, drm: $(this).html()} ,
  function( data ) {
      $(this).html(data);
      alert(data)
  },"application/x-www-form-urlencoded");
});

Alles ist auf Serverseite in Ordnung, aber die Erfolgsfunktion auf Clientseite macht nichts. Auch einfache Codes wie alert("hoho"); lösen keinen Erfolg aus.

0 Stimmen

Ich konnte keine Lösung finden, aber wenn Sie ein ähnliches Problem haben, empfehle ich die Verwendung von Jax :)

2voto

ncank Punkte 896

Das passiert normalerweise, wenn die Antwort nicht geparst werden konnte. Du solltest die Antwort mit Firebug oder einem ähnlichen Debugging-Tool überprüfen.

Insbesondere die Methoden, die JSON-Daten erwarten, überprüfen die Antwort streng und wenn etwas ungültig ist, passiert einfach nichts, keine Fehlermeldung, keine Warnung, keine Ausnahme.

Wenn deine Rückruffunktion nicht ausgeführt wird, solltest du vermuten, dass deine Antwort nicht korrekt ist.

// Türkçe özet

Bei langen Worten könnte es Probleme geben, dass die Funktion nicht aufgerufen wird. Überprüfe die Werte, die vom Server kommen, sorgfältig. Bei einem Fehler in der jQuery-Funktion oder im Rückruf führt dies dazu, dass einfach ohne Warnung beendet wird.

2voto

Tom Punkte 17812

Ich hatte das gleiche Problem. Es stellte sich heraus, dass ich einen AJAX-Aufruf an dieselbe Domain gemacht habe, aber auf einem anderen Port, was aus Sicherheitsgründen in Javascript nicht erlaubt ist.

Siehe diese relevante Frage für weitere Informationen:

Wie sende ich einen AJAX-Aufruf an einem anderen Port mit jQuery?

Es hat mich sehr überrascht, dass der AJAX-Aufruf zwar POST/GET an den Server gesendet hat (was ich durch Überprüfen des Serverlogs nachweisen konnte), aber dass die Antwort nie gelesen wurde. Ich hätte gedacht, dass sowohl das Senden als auch das Empfangen untersagt wäre.

1voto

ôkio Punkte 1732

Ich hatte auch diesen Fehler, und das war ein dummer Fehler: Ich habe dataType in meinem JS auf "json" gesetzt, aber die aufgerufene Seite gab einfachen HTML-Code zurück. Und das führte dazu, dass die Erfolgsfunktion überhaupt nicht ausgeführt wurde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X