目前正在從1.7到1.13(然後是2.0之後)升級一個相當大的EmberJS應用程序。我們現在幾乎在那裏。如何從DS.InvalidError和DS.AdapterError獲取狀態碼?
我們根據HTTP狀態代碼來處理來自服務器的錯誤。我們當前的代碼都有點像這樣...
model.save().then(
// Success
function() { /* ... */ },
// Failure
function(response) {
switch (response.status) {
case 403:
/* ... */
case 422:
/* ... */
case 500:
/* ... */
default:
/* ... */
}
}
)
以前,我們可能只是得到了status
屬性的狀態代碼。現在,這不存在,因爲response
變量是DS.InvalidError或DS.AdapterError的實例。
問題
我們如何才能獲得狀態代碼?
或者,我們如何區分不同的可能響應類別(DS.InvalidError
和DS.AdapterError
)?
版本
- 恩貝爾:1.13.6
- 灰燼數據:1.13.7
此答案可能會幫助您http://stackoverflow.com/questions/31918565/handling-errors-with-the-now-default-ember-data-json-api -adapter/32059528#32059528 – Sarus
@Sarus我遇到過那個。我們尚未使用JSONAPI後端,並且確實需要訪問原始狀態代碼。 –
您使用的是RESTAdapter嗎?我還沒有嘗試過,但我認爲你仍然可以重載適配器中的handleResponse方法來處理狀態。 – Sarus