2010-07-28 125 views
0

最近,我必須在主要由小部件組成的富Web應用程序中在客戶端和服務器之間進行標準化通信。對客戶端的響應採用json格式。當是時候決定處理錯誤消息時,彈出兩個想法。處理錯誤消息

  1. 發送錯誤消息部分的 響應如

    { 「成功」: 「假」, 「錯誤」:[ 「field1的」: 「MESSAGE1」, 「FIELD2」:「消息2 「]}

  2. 發送錯誤作爲報頭和簡單地返回false到客戶

response.addHeader( 'X-應用程序錯誤',」[ 「field1的」: 「MESSAGE1」,「 field2「:」message2「]')

第二個選項似乎是整潔的;用戶只在需要時檢查標題中的錯誤,錯誤似乎成爲協議的一部分,而不是響應的一部分。

這是一個很好的做法嗎?是一種比另一種更好的方式。

回答

2

我會發送錯誤消息作爲響應的一部分。

添加自定義標頭是您如果想要在HTTP協議級別上報告事情時要做的事情; HTTP已經建立了報告錯誤的方法(通過HTTP狀態碼)。我會在響應的主體中留下任何將顯示給客戶端(或由Javascript使用)的內容。

+0

+1我同意。另外,如果您要將錯誤消息返回給客戶端,則應該使用客戶端語言,而不是泄露有關係統的敏感信息(如數據庫連接字符串) - 僅僅因爲您期望調用代碼是您的,並不意味着它總是會的。 – 2010-07-28 03:25:49

+0

Ooops - 「以客戶語言」顯然適用於向最終用戶顯示的消息;但是 - 這個想法也適用於交換不同層/系統之間的任何錯誤信息。 – 2010-07-28 07:32:07