JQuery ajax查询失败非常默默

时间:2013-09-24 08:53:35

标签: javascript jquery ajax

我已经阅读过类似问题的类似问题,但我读到的每条建议对我来说都是低效的。这是ajax调用(我正在使用Jquery 1.9.1):

$( document ).ajaxError(function() {
 alert( "AJAX ERROR" );
});

$.post( "/lists/complete", { itemID:id }, function(answer) {
  alert("SUCCESS");
}, "text" ).fail( function() {
  alert("ERROR");
}).always( function() { 
  alert("DONE");
});

在服务器端,按预期收到请求。如果我在客户端监视服务器响应(使用Firebug),我可以看到服务器发送200响应以及正文中的正确数据。但是,永远不会触发警报!

我该怎么做才能理解这个问题?我必须补充一点,我对JS和Jquery的经验很少......

2 个答案:

答案 0 :(得分:3)

我也不是jquery帖子的粉丝。我更喜欢使用$ .ajax。但是,建议链接完成,失败并始终。

$.ajax({
  url: ' yoururl ',
  type: 'POST',
 // dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
  data: {param1: 'value1'},
})
.done(function() {
  console.log("success");
})
.fail(function() {
  console.log("error");
})
.always(function() {
  console.log("complete");
});

http://api.jquery.com/jQuery.ajax/

  

弃用通知: jqXHR.success(),jqXHR.error()和   从jQuery 1.8开始,不推荐使用jqXHR.complete()回调函数。准备   你的代码最终删除,使用jqXHR.done(),jqXHR.fail(),   和jqXHR.always()相反。

答案 1 :(得分:0)

我从未成为$ .post的粉丝而是使用完整的ajax调用:

$.ajax({
  type: 'POST',
  url: '/lists/complete',
  data: data,
  success: function(data){
    alert("SUCCESS");
  },
  error: function(xhr, type, exception) { 
    // if ajax fails display error alert
    alert("ajax error response type "+type);
  }
});

给出一个镜头,让我知道警报是否消失。 如果这不起作用,请打开控制台(firebug ...)并转到网络选项卡,清除它并发送您的请求。

单击请求并检查标题和响应是否正常。