Jquery Ajax - 处理应用程序级错误

时间:2014-05-06 05:27:06

标签: jquery ajax exception-handling

我特意使用Jquerys .post()方法提交ajax调用,并将其作为json编码接收。

    function createUserAccount() {
        $.post( "createUserAccount", $( "#UserAccountForm" ).serialize(), function() {

        })
            .done(function(data) {
                parseddata = JSON.parse(data); 
                // Do Stuff
              })
            .fail(function() {
                alert( "There was a problem with the Ajax call" );
              })
            .always(function() {
                alert( "Always" );
        });
    }

处理应用程序级别错误的推荐方法是什么(例如:已经使用了用户名。此表单的用户知道ajax调用失败(从应用程序的角度来看)并且需要更改他建议的用户名。

我应该在JSON返回中添加一些东西,从应用程序的角度将ajax调用标记为成功还是失败?如果是这样,我们有任何代码示例吗?我们怎么做?

注意我并不是在谈论HTTP级状态代码,我知道它们的级别低于我的应用程序自定义错误和消息。

2 个答案:

答案 0 :(得分:1)

我更喜欢在json中设置成功,或者返回错误消息。我保留对真正意外失败的抛出异常,例如不与数据库联系。

答案 1 :(得分:0)

你在这里踩到了不友好的领域,因为这可能有点争议:)关于如何在回复中做错误处理有很多意见,我会尽量在这里做客观。

我看到它完成的主要方式就像你说的那样:把一些东西放在响应中。这通常会涉及成功:true | false和消息字段。

另一种可能不太常见的方法是对错误进行非冗长,并简单地返回空的或错误的json对象。

最后,有响应代码。这在技术上是“标准”的方式,这将是返回响应头。别。老实说,只是不要。

我建议使用第一个选项,因为它似乎是为了冗长,而且它允许你对“succes == true?”进行非常标准化的错误检查。