Jquery 使用.post()处理错误
我必须修改别人写的项目。因为代码乱七八糟,我无法真正更改此$.post()(或用$.ajax()替换它)。我需要做的是,知道post是否返回其他内容,然后返回JSON并返回它Jquery 使用.post()处理错误,jquery,Jquery,我必须修改别人写的项目。因为代码乱七八糟,我无法真正更改此$.post()(或用$.ajax()替换它)。我需要做的是,知道post是否返回其他内容,然后返回JSON并返回它 $.post('balbal.html', json, function(data) { ... my coude ... }, 'json') 我可以在console.log中看到post响应。有一种简单的方法可以检索它吗?您可以使用$.ajax()($.post是一种最终调用它的快捷方式),并定义错误回调 或者,如果
$.post('balbal.html', json, function(data) { ... my coude ... }, 'json')
我可以在console.log中看到post响应。有一种简单的方法可以检索它吗?您可以使用$.ajax()
($.post
是一种最终调用它的快捷方式),并定义错误回调
或者,如果你真的不想这样做,打电话给我
$.ajaxError(function(){
//error handler
})
在此之前,
$.post
有几种方法可以做到这一点,但是如果您无法通过返回的JSON数据对象获得可用的错误响应,那么可以使用jQuery为所有ajax调用定义默认值。尽管$.post()
方法本身没有指定错误处理程序或回调,但是$.ajaxSetup()
方法将捕获任何ajax错误并执行您为其定义的函数
或者,还有一个函数可以做同样的事情
请注意,如果JSON响应返回正确,但带有服务器端错误代码,则此操作将不起作用。如果您想捕获这些类型的情况,最好在post之后立即使用定义错误回调的方法来查找它们。请注意,分号仅位于末尾
$.post('balbal.html', json, function(data) {
// ... my code ...
})
.fail(function(response) {
alert('Error: ' + response.responseText);
});
对于较旧版本的jQuery(1.8之前)使用相同的语法。您可以这样做
有关详细信息,请访问:在
$中没有错误处理。post
因为它只是一种保存键入内容的快捷方法。我尝试了ajaxError,但没有执行。我从帖子中得到了一个答案,但它是一个php错误,而不是我所期望的json。然后劫持成功处理程序并首先在那里添加一个检查。会有人打电话的,不是吗如果响应不是json,请不要进入成功处理程序。如果能得到实际的错误消息,那就好了,但这很酷thanx@John将来任何人来到这里,如果你这样做了。失败(res),那么你可以执行res.responseText来访问错误消息。现在,您可以对错误消息执行res.responseText或res.responseJSON,而json对象只需在控制台中的.fail()期间打印响应对象。控制台日志(响应);您可以查看可能可以使用的所有可用对象。您可以通过响应获取状态。statusText
和选项有:未修改,无内容,错误,超时,中止,或解析器错误
/ Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.post( "example.php", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
.always(function() {
alert( "finished" );
});
// Perform other work here ...
// Set another completion function for the request above
jqxhr.always(function() {
alert( "second finished" );
});