0

这是我提交 ajax 请求的方式:

$.ajax({
            url: "myurl",       
            type: 'POST',
            dataType : "text",
            data : ({
                json : myjson
            }),
            success : function(data) {

                if(data == 'success'){
                    //alert('success');
                }
                else {
                    alert('fail');
                }

                };
            }

        });   

在 java 中,我只返回包含“成功”或“失败”的字符串,具体取决于是否抛出异常:

伪代码:

try {
return "success";
}
catch (Exception e){
return "fail";
}

这足以代替使用 ajax 错误回调吗?如果还不够,应该如何使用这个回调以及它检查哪些额外的失败条件?

   error : function() {
                alert ('error');
    } 
4

1 回答 1

3

回调的目的error不同:如果在发送请求或接收响应期间发生错误,jQuery 将调用该函数。例如,如果您的服务器没有返回答案而是“500 Internal Server Error”(或任何其他错误),则success根本不会调用回调函数。如果您定义了error回调,那么它将被调用 - 您将有一些机会找出错误是什么。

仅仅因为您的服务器工作正常并不意味着不会发生通信错误:例如,它可能是“网关超时”、“没有到主机的路由”等。

最后,如果您声明dataType: json(我知道它不适用于您的示例)但无法解析返回的数据(即它不是格式良好的 JSON 字符串),error则将调用您的函数而不是您的success函数。

于 2012-06-18T16:23:18.883 回答