我已经阅读过类似问题的类似问题,但我读到的每条建议对我来说都是低效的。这是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的经验很少......
答案 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 ...)并转到网络选项卡,清除它并发送您的请求。
单击请求并检查标题和响应是否正常。