2008-11-04 86 views
3

我正在使用一些jQuery来使UI更加动态/可用的条纹应用程序。jQuery Ajax错误解决方案

我设置了一个错误解决方案,因此如果发生错误,用户将被重定向到error.jsp页面。

但是,如果在jQuery Ajax调用期间抛出错误,而不是重定向到error.jsp页面,则会将html打印到调用结果应该改为的页面。

如何告诉jQuery重定向如果抛出异常而不是打印到页面?

违规阿贾克斯的例子:

$.post("SendStatusEmail.action", 
      {status: newstatus, id : id }, 
      function(data) { 
       column.text(data); 
       column.addClass("redfont"); 
       column.parent().fadeOut(3000, function(){column.parent().remove()}); 

回答

3
$(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) { 
    // redirect here. 
} 

我要补充的是,当存在一个Ajax调用例外,我不重定向。相反,我让服务器以JSON格式返回一个错误描述并将其显示在页面中。

+0

呃..实际上服务器正在处理一个抛出的异常,所以它正在吐出一些html而不是我期望的纯文本,所以jQuery认为一切正常。我想用这个我可以使异常处理程序返回一个500 HTTP状态代码或什么?嗯.. – lucas 2008-11-04 17:06:50

4

如何使用$ .ajax()而不是$ .post()?更通用的$ .ajax()提供了一个错误回调函数,您可以在发生错误时调用它。