蕪湖不蕪
2023-05-18 09:56:18
我現(xiàn)在正在使用:ember: 3.8.1ember-data: 3.10.0我正在嘗試從 Grails API 發(fā)送帶有一些附加數(shù)據(jù)的錯(cuò)誤響應(yīng)。它看起來像這樣:respond( status: HttpStatus.UNPROCESSABLE_ENTITY, errors: errors additionalData: someMap)在 Ember 的前端,我試圖通過以下方式捕獲它:object.save().then(function () { // (...)}).catch((response) => { // Here I want to access "response.additionalData" // (...)});現(xiàn)在,我知道ember-data它有自己的方式來處理和綁定錯(cuò)誤響應(yīng)(https://davidtang.io/2016/01/09/handling-errors-with-ember-data.html),但ember-data: 2.10.0我能夠捕捉到并在 catch with 中使用附加數(shù)據(jù)處理錯(cuò)誤response.additionalData。在我使用的版本中,我response.additionalData總是undefined無法以任何方式獲得它。它來自后端,因?yàn)槲铱梢栽跒g覽器開發(fā)工具中看到它作為響應(yīng)。我怎樣才能在最新的情況下實(shí)現(xiàn)這一目標(biāo)ember-data?我確實(shí)嘗試編寫adapter和覆蓋handleResponse函數(shù),但即使是我自己的 CustomErrorClass 仍然像原生的一樣。任何幫助,將不勝感激。提前致謝!
1 回答

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
起初,這沒有幫助,服務(wù)器的回答是:
Error:?Assertion?Failed:?Your?transport?record?was?saved?to?the?server,?but?the?response?does?not?have?an?id?and?no?id?has?been?set?client?side.?Records?must?have?ids.?Please?update?the?server?response?to?provide?an?id?in?the?response?or?generate?the?id?on?the?client?side?either?before?saving?the?record?or?while?normalizing?the?response.
然后我HttpServletResponse response
像這樣向?qū)ο筇砑禹憫?yīng)狀態(tài):
response.status?=?HttpStatus.UNPROCESSABLE_ENTITY.value()
所以完整的響應(yīng)部分看起來像這樣:
response.status = HttpStatus.UNPROCESSABLE_ENTITY.value()
render([errors: [[status: HttpStatus.UNPROCESSABLE_ENTITY,
? ? ? ? ? ? ? ? ? title : e.message,
? ? ? ? ? ? ? ? ? detail: message,
? ? ? ? ? ? ? ? ? meta? : [additionalData: additionalData]]
]] as JSON)
另請注意,為了使 JSONAPI 格式有效,errors內(nèi)容位于雙括號(hào)中。[[
有了這個(gè),我終于得到了成員的正確答案meta:
添加回答
舉報(bào)
0/150
提交
取消