2014-09-20 106 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然後使用不同的大小寫。

相關問題