我必须修改别人写的项目.因为代码很乱,我无法真正改变这个$ .post()(或用$ .ajax()替换它).我需要做的是知道帖子是否返回其他内容然后返回JSON并返回它.
$.post('balbal.html', json, function(data) { ... my coude ... }, 'json')
Run Code Online (Sandbox Code Playgroud)
我可以在console.log中看到post响应.有一种简单的方法来检索它吗?
inc*_*ick 117
在帖子后立即定义错误回调.请注意结尾处的分号放置.
$.post('balbal.html', json, function(data) {
// ... my code ...
})
.fail(function(response) {
alert('Error: ' + response.responseText);
});
Run Code Online (Sandbox Code Playgroud)
http://api.jquery.com/deferred.fail/
对于旧版本的jQuery(1.8之前版本)使用.error而不是相同的语法.
Phi*_*ler 13
有几种方法可以做到这一点,但是如果你没有通过返回的JSON数据对象获得错误响应,你可以使用$ .ajaxSetup()来通过jQuery 定义所有 ajax调用的默认值.尽管该$.post()方法本身并未指定错误处理程序或回调,但该$.ajaxSetup()方法将捕获任何ajax错误并执行您为其定义的函数.
或者,还有一个$ .ajaxError()函数可以执行相同的操作.
请注意,如果正确返回JSON响应但使用服务器端错误代码,则无法执行此操作.如果要捕获这些类型的案例,最好使用$ .ajaxComplete()方法查找它们