使用.post()进行错误处理

时间:2010-04-23 10:13:06

标签: jquery

我必须修改别人写的项目。因为代码很乱,我无法真正改变这个$ .post()(或用$ .ajax()替换它)。我需要做的是知道帖子是否返回其他内容然后返回JSON并返回它。

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

我可以在console.log中看到post响应。有一种简单的方法来检索它吗?

4 个答案:

答案 0 :(得分:110)

在帖子后立即定义错误回调。请注意结尾处的分号放置。

$.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代替相同的语法。

答案 1 :(得分:13)

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

或者,还有一个$.ajaxError()函数可以执行相同的操作。

请注意,如果正确返回JSON响应但使用服务器端错误代码,则无法执行此操作。如果您想捕获这些类型的案例,最好使用$.ajaxComplete()方法查找它们

答案 2 :(得分:2)

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

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

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

之前$.post

答案 3 :(得分:0)

你可以这样做

@echo off 
  
 1>nul chcp 65001 & set "_cmd=dir /b/a:-d/o:-d/t:c ".\financial*.*""
 2>nul cd /d "C:\Source\." && set "_target=\\to\target\folder\." || (
 timeout /t -1 | echo\Path/Source do not exist: C:\Source & goto :eOf)
  
 for /f tokens^=* %%i in ('2^>nul %_cmd% ^|findstr/lei "\.pdf \.xlsx"')do 2>nul (
 2>nul robocopy .\. "%_target%" "%%~ni.xlsx" "%%~ni.pdf" /mov /njh /is|find "100%%")

欲了解更多信息,请访问:https://api.jquery.com/jquery.post/