0

我想知道如何使用 Struts2 操作结果中的 jquery $post 处理错误。

例如,在我的 strut2.xml 中,我使用以下内容处理了错误:

<action name="helloWorld" class="net.roseindia.Struts2HelloWorld">
   <result="success">/pages/HelloWorld.jsp</result>
   <result="error">/pages/HelloWorld.jsp</result>
</action>

在我的 jquery 调用中,我有以下内容:

$.post("helloWorld", function(){

}).success(result){
    $("#div").html(result);
}).error(){
    alert("ERROR");  

};

即使结果等于错误,它也总是会成功。

那么如何在我的 jquery 调用中使 result="error" 转到 $.post 错误?

4

1 回答 1

2

它是“成功的”,因为无论“返回”什么,您都会有一个 AJAX 成功的请求/响应。您需要做的是从 servlet 设置一些“失败”通知,然后检查“成功”块中返回的内容。

“成功”表示请求返回“2xx”代码。“错误”表示非 2xx 成功:

更多关于 html 代码的信息:http: //www.w3.org/Protocols/HTTP/HTRESP.html

就像这样(不是有用的代码,但你会明白的

$.post("helloWorld", function(){

}).success(result){
    if(result == some error condition) { this.error;} 
else { //process the success
        $("#div").html(result);
}
    }).error(){
    alert("ERROR");  

};

编辑:安东尼在下面发表评论说,由于用户可以控制所请求的服务/页面-您可以以返回 html 错误代码而不是询问结果 html的方式构建 servlet/代码-这是一个很好的建议. 谢谢安东尼

于 2012-04-17T21:36:12.093 回答