我對AJAX請求做出響應,但出現應用程序錯誤。 (例如數據驗證失敗)。如何注意用戶?返回狀態碼並在客戶端獲取消息或直接向客戶端發送錯誤消息
1.返回狀態碼,然後通過JS得到消息
$.ajax(options).done(function(response){
if (response.status === 1){
// no problem, do next action
} else {
alert (messages[response.status]);
}
});
var messages = {
'0': 'Server Error',
'-1': 'Invalid Data',
...
}
2.返回狀態碼,以及消息:
$.ajax(options).done(function(response){
if (response.status === 1){
// no problem, do next action
} else {
alert (response.message);
}
});
哪一個更好?或者,最佳做法是什麼?請注意,我們有雙語應用程序。
就我個人而言,我認爲第一個更好。因爲我必須至少在我的JS文件中定義一條錯誤消息,以便發現服務器錯誤。 (當AJAX請求失敗時,jQuery .fail()
)因此,如果我必須這樣做一次,最好將所有消息收集在一起。
如果使用選項1,請給用戶一些方法來訪問基礎消息。 – Kolban 2014-11-08 03:35:26
@Kolban:我不能明白你的意思。你能再解釋一下嗎? – mrdaliri 2014-11-08 04:08:29
在您的第一個解決方案中,您通過提供自己的消息來「掩蓋」從ajax調用返回的基礎消息。這很好,並提供了關於這個問題的非技術背景。但是,您也正在失去可能在潛在響應消息中提供的「知識」(無論它說什麼)。理想情況下,您提供兩種類型的消息。第一個和主要是一個明確的用戶消費信息,但另外,我還會嘗試提供一種方式,讓用戶在需要時可以「獲取」底層消息。 – Kolban 2014-11-08 04:11:43