error handling与.post()

我必须修改别人写的项目。 因为代码乱七八糟,所以我不能真正改变这个$ .post()(或者用$ .ajax()replace它)。 我需要做的是要知道这个post是否返回其他东西,然后返回JSON。

$.post('balbal.html', json, function(data) { ... my coude ... }, 'json') 

我可以在console.log中看到post的回复。 有没有简单的方法来检索它?

有几种方法可以实现,但是如果没有通过返回的JSON数据对象获得错误响应,则可以使用$ .ajaxSetup()通过jQuery为所有 ajax调用定义默认值。 即使$.post()方法没有指定error handling程序或callback本身, $.ajaxSetup()方法将捕获任何ajax错误并执行您为其定义的函数。

另外,还有一个$ .ajaxError()函数可以做同样的事情。

请注意,如果您的JSON响应正确返回,但服务器端的错误代码将不起作用。 如果你想捕获这种情况,你可能最好使用$ .ajaxComplete()方法来查找它们

在post后立即定义错误callback。 注意只在末尾分号放置。

 $.post('balbal.html', json, function(data) { // ... my code ... }) .fail(function(response) { alert('Error: ' + response.responseText); }); 

http://api.jquery.com/deferred.fail/

对于旧版本的jQuery(1.8之前版本),使用.error而不是使用相同的语法。

您可以使用$.ajax()$.post是最终调用它的快捷方式),并定义错误callback。

或者,如果你真的不想这么做,请致电

 $.ajaxError(function(){ //error handler }) 

$.post之前