我试图在Ember应用程序中处理服务器错误。
我在ember app中运行以下代码:
customization.save().catch(function (error) {
console.log(error);
console.log(customization.get('errors'));
console.log(customization.get('errors.length'));
});
我的服务器在有效负载中使用以下json回答422状态:
{
"errors":[
{
"code":"app.customization.validationError.duplicateCustomizationName",
"detail":"a customization with same name already exists",
"source":{
"pointer":"customization/name"
}
}
]
}
错误为InvalidError
,但customization.get('errors.length')
始终为0.
我在Ember 2.4.5中使用DS.RESTAdapter和DS.RESTSerializer以及Ember DATA 2.4.0。
我错过了什么?
由于
答案 0 :(得分:0)
好的,我终于明白了。即使您没有使用DS.JSONAPIAdapter,source.pointer
中的路径也必须采用JSONAPI样式。
发送此信息:
...
"pointer":"data/attributes/name"
...
解决了这个问题。
我认为指针中的路径是指与模型对应的实际JSON中的字段路径,但这显然是错误的。