2015-09-28 72 views
0

你好我如何处理服务器的异常 - 使用jquery - jquery?使用ajax管理服务器异常

我正在用Java和struts框架开发一个Web应用程序。在项目中,我托管异常使用全局例外:

<Global-exceptions> 
    <Exception key = "label.exception" type = "java.lang.Exception" 
    handler = "exception.ExceptionHandler" 
    path = "pages/errore.jsp" /> 
    </ Global-exceptions> 

,我用的是在这样的一个操作调用后一个AJAX功能:

function find (cer, descr, urlToOpen, windowName, idapp) { 
$ .ajax ({ 
type: "POST" 
url: "home.do?method=find" 
date: {calledfunction: windowName, idfind: find, description: descr, idapp: idapp, urlToOpen: urlToOpen} 
success: function (data) { 
var = newWindowName windowName.replace (/ [^ a-zA-Z0-9]/g, ''); 
window.open (urlToOpen, newWindowName); 
alert ("Next"); 
}, 
error: function (thrownError) { 
alert ("ERROR"); 
} 
}); 
} 

的问题是,我的动作抛出一个异常(我强迫自己),但从不打开错误页面。相反,它运行的任何内部 成功。

+0

这是您的实际JavaScript吗?如果是这样,有一些错误可能会导致一个异常 - 第一个'$'之后的空间;几个属性后遗漏的逗号; 'date'应该是'data'。 –

+0

复制和粘贴中会出现一些问题。在Eclipse中我正确地写了它。无论如何感谢您的警告 – giuls26

回答

0

您应该在pages/errore.jsp中有<% response.setStatus(500); %>,以便相同的错误状态代码将返回到调用Ajax函数。这里$.ajax的底层代码将检查状态码。由于状态码是500,与200 OK不同, error:处理程序将被调用,而不是success:

+0

好的,谢谢。通过这种方式,我有一个错误,并显示警报,但..为什么我的网页error.jsp未打开? – giuls26

+0

在Ajax的情况下,您实际上在处理程序中获得响应;成功或错误。通过观察响应,您必须手动将用户带到所需的页面。 – vijayP

+0

因此,我以这种方式管理异常( ........)对事件没有影响? – giuls26