jacekn jacekn - 4 days ago 6
jQuery Question

Callback not executing from jQuery post

I'm having problems executing the call back function.

$.post("/" + contentId + "/postComment", {
"postComment": ""
}, function(data) {
alert('call back');
});


This post does take place. The alert is not called, however.

This post results in some
xml
returned. I can't tell exactly how it looks because I'm using Spring mappings of
application/xml
together with
@RequestBody
and I just don't know what Spring does to what I'm returning. I'm saying this just in case the contents of server response can affect the call back somehow.

The question is:

what do I need to do to see that alert in my code example?


Answer

Your code is fine other than that it doesn't hook the error handler (one of the reasons I don't like $.post). I think the POST operation must be resulting in an error. Try converting it to this:

$.ajax({
  type:    "POST",
  url:     "/"+contentId+"/postComment",
  data:    {"postComment":""},
  success: function(data) {
        alert('call back');
  },
  // vvv---- This is the new bit
  error:   function(jqXHR, textStatus, errorThrown) {
        alert("Error, status = " + textStatus + ", " +
              "error thrown: " + errorThrown
        );
  }
});

...so you can see what the error is.

Comments