【问题标题】:JQuery ajax() done / fail callbacks not returning upon status 200JQuery ajax() 完成/失败回调未在状态 200 时返回
【发布时间】:2013-02-05 14:46:12
【问题描述】:

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

`

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,因此不推荐使用成功。 有什么想法吗?

【问题讨论】:

  • 尝试使用 success 而不是 doneerror 而不是 fail。跨度>
  • @Dim13i - 我已经尝试过了,顺便说一句 - 我使用的是 JQuery 1.8.3,所以不推荐成功。
  • 你有没有打开你的控制台看看有没有请求错误,比如same-origin?如果没有调用成功,则应该调用错误。 fail 作为$.ajax 的一个选项是无证的,我也从来没有这样尝试过,所以我不知道它是否有效。如前所述,它应该是errorsuccess。选项successerror 不折旧,只有jqXHR 的匹配方法折旧。 (例如,$.ajax(...).success()

标签: javascript jquery servlets


【解决方案1】:

试试:

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);
});

【讨论】:

  • 您应该在 .fail 中记录参数,以便也记录原因,否则它是非常无用的信息。
  • 第三个是最重要的,它会说“parseerror”
  • 奇怪的是这是一个语法问题,但它实际上解决了它 - 谢谢@KevinB!
【解决方案2】:

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

 $.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.");
  });

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

【讨论】:

  • 这正是@idmean 提出的。抱歉重复
猜你喜欢
  • 2015-11-04
  • 2014-09-14
  • 1970-01-01
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多