zetachang/ntu_scheduler — Issue #27: 前端的error handlers
Author: raincole
Created: 2011-12-03 21:52:02+00:00
State: open

後端有三種回傳錯誤狀態的API，分別為：

+ 未知錯誤、伺服器問題：無論40x或500，所有失敗的Ajax呼叫，請統一在`ajax:error`的callback中處理，只要顯示「發生未知錯誤」之類的通用敘述就行了。**所有**Ajax呼叫都必須處理此狀況。

+ 一般錯誤：Ajax呼叫成功，但回傳的json為：

```json
{
"status" : "ERROR",
"message": "a string"
}
```

必須在`ajax:success`的callback中判斷`data['status'] == "ERROR"`以捕捉此狀況。和未知錯誤應共用同樣的UI。同樣地，**所有**Ajax呼叫都必須處理此狀況。

+ 校驗失敗：Ajax呼叫成功，但回傳的json為：

```json
{
"status" : "INVALID",
"message": ["an", "array", "of", "strings"]
}
```
必須在`ajax:success`的callback中判斷`data['status'] == "INVALID"`以捕捉此狀況。因為校驗訊息可能不只一條，所以和前兩種的顯示方式不一定相同，應該要分行輸出。**基本上**，只有`create`和`update`之類的Ajax呼叫才需要處理此狀況。