发送ajax响应的最佳做法是什么?

时间:2014-09-20 15:01:14

标签: javascript php ajax error-handling http-status-codes

我有一个调用php的webapp:

    var jqxhr = 
        $.getJSON( url )
        .done( function( data, status ) {
            if( status == 'success' ) {
                rv = true;
                // initialise the user object
                app.user = new User( data );

                // post login-processing
                app.postLogin();
            } else {
                // login failed
                console.log( "autologin failed!" );
            }
        })
        .fail( function() {
            console.log( "autologin fail" );
    }); // end var jqxhr =

我想知道php脚本中最佳做法是什么?

例如,如果一切正常,我的php返回:

header('Content-type: application/json; charset=utf-8');
print json_encode($row);

如果出现意外错误,例如错误的SQL,我的php会返回:

header('HTTP/1.1 500 Internal Server Error');
header('Content-Type: application/json; charset=UTF-8');
etc.
在调用die()之前

。然后我在.fail()中处理它。

但是,如果我想返回EXPECTED错误,例如“用户名或密码无效”,该怎么办?可以使用“内部服务器错误”,还是应该使用某种json响应协议来通知javascript错误,并在.done()中查找?

任何建议都非常感谢。

由于

迷你

1 个答案:

答案 0 :(得分:0)

我认为您应该检查服务器端脚本的标头响应并相应地使用switch case。 例如: - 如果标头响应是json然后使用不同的情况,如果标头响应失败ajax调用然后使用不同的情况。