2014-09-20 108 views
0

我有一个调用PHP这样一个Web应用程序:发送ajax响应的最佳做法是什么?

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. 

( )。然后我在.fail()中处理这个问题。

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

任何意见非常赞赏。

感谢

迷你

+1

500个状态通常意味着服务器上发生了一些不好的事情。还有更有意义的[**状态代码**](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html),例如您可以使用401,因为这是未经授权的状态代码,它表示请求需要身份验证或身份验证失败的内容 – 2014-09-20 15:11:57

+0

“无效的用户名或密码”不是内部服务器错误,因此**否**。 – Bergi 2014-09-20 15:15:29

回答

0

我想你应该检查从服务器端脚本的标头响应,并相应地使用开关的情况下。 例如: - 如果头响应是json,则使用不同的大小写,如果头响应失败,则调用ajax然后使用不同的大小写。

相关问题