Ajax调用总是调用成功响应函数

时间:2015-08-19 05:58:31

标签: jquery ajax struts2

我想使用基于'success'或'failure'的ajax调用从struts.xml返回两个不同的jsp页面。

我的ajax方法是:

$.ajax({
  url: url,
  success: function(data) { 
        $('#page-area').html("");   
        $('#page-area').html(data);             
        $('#modal_new-pack').modal('show');     
  },
  failure: function(data) { 
        $('#page-area').html("");   
        $('#page-area').html(data);             
  },
  cache: false
});

我的struts.xml是:

<action name="modify" class="com.test.ennt.action.CorporateAction"
            method="modify">
    <result name="success">/jsp/VF_ManageSuccess.jsp</result>
    <result name="failure">/jsp/VF_ManageError.jsp</result>
</action>

并且操作方法是:

public String modify() {
        corporate = corporateManager.getCorporate(getCorporateID());
        if (corporate == null) {
            return "failure";
        }
        this.disable = "true";
        return "success";
    }

基于我的action方法的返回值和struts.xml失败/成功结果我需要显示我的jsp页面。 但是ajax总是运行'成功'响应函数。

3 个答案:

答案 0 :(得分:0)

你做错了,你回复的信息都将跳入成功方法。

您可以使用结果。

例如:

$.ajax({
  url: url,
  success: function(data) { 
     if(data=="success"){
        $('#page-area').html("");   
        $('#page-area').html(data);             
        $('#modal_new-pack').modal('show');   
     }
     else
     {
        $('#page-area').html("");   
        $('#page-area').html(data);
     }  
  }
  cache: false
});

答案 1 :(得分:0)

当服务器发生错误时,将调用错误功能。不取决于您返回的价值。

$.ajax({
  url: url,
  success: function(data) { 
      if($.trim(data) === 'success'){
            $('#page-area').html("");   
            $('#page-area').html(data);             
            $('#modal_new-pack').modal('show');     
      } else {
            $('#page-area').html("");   
            $('#page-area').html(data);
      }
  },
  error: function() { 
      alert('Error')
  },
  cache: false
});

答案 2 :(得分:0)

$ .ajax中的

真的意味着http错误状态

  • HTTP状态代码100-101 - 信息状态代码
  • HTTP状态代码200-206 - 成功的状态代码
  • HTTP状态代码300-307 - 重定向状态代码
  • HTTP状态代码400-416 - 客户端错误状态代码
  • HTTP状态代码500-505 - 服务器错误状态代码

我认为两个jsp VF_ManageSuccess.jsp和VF_ManageError.jsp都返回http状态码200;