2

我正在尝试使用 JQuery 将表单数据发布到远程 servlet。我可以看到服务器接收到数据并返回状态代码 200 和响应字符串“{result: 'success'}” 但是 ajax 调用没有返回 done 或 fail 函数(如果我添加一个 always 函数比我看到它被调用)这是客户端的代码片段:

`

var dataParams = 'email='+email+'&password='+password;
var url = 'http://127.0.0.1:8888/signup';

var jxhr = $.ajax({
  type : "POST",
  url : url,
  data : dataParams,// serializes the form's elements.
  dataType: "json",
  done: function() {
     console.log("done!");
     hideSignUp();
     showThankYou(); },
  fail: function() {
     console.log("fail!");
      }
  });

`

好像我错过了一些东西,但似乎找不到什么。请注意,我使用的是 JQuery 1.8.3,因此不推荐使用成功。有什么想法吗?

4

2 回答 2

4

尝试:

var url = "http://127.0.0.1:8888/signup";
var jxhr = $.ajax({
  type : "POST",
  url : url,
  data : dataParams,// serializes the form's elements.
  dataType: "json"
  }).done(function() {
     console.log("done!");
     hideSignUp();
     showThankYou(); 
  }).fail(function(jqXHR, textStatus) {
     console.log(textStatus);
});
于 2013-02-05T14:51:17.757 回答
0

尝试链接您的回调,而不是将它们设置为对象字段:

 $.ajax({
  type : "POST",
  url : url,
  data : dataParams,// serializes the form's elements.
  dataType: "json"
  }).done(function (xhrResponse) {
    console.log("done!");
    hideSignUp();
    showThankYou();
  }).fail(function (xhrResponse, textStatus) {
    console.log(textStatus);
  }).always( function () {
    console.log("I'm done with this.");
  });

通过链接你的回调,你保证执行至少一个(完整的)。

于 2015-08-04T16:33:20.477 回答