【发布时间】:2016-01-02 20:03:24
【问题描述】:
我不知道我的问题是否与我的查询或回复或其他问题有关。
在我的路线中,我使用的是queryRecord:
model(params) {
return this.store.queryRecord('invitation', {
'invitation_token' : params.invitationToken
});
},
我在服务器端正常接收,但我正在测试邀请令牌不再存在的情况。因此,服务器返回一个带有 json 有效负载的 400,其中包含错误说明。
{"error":"Error finding invitation"}
但回到 ember 方面,我只遇到了两个错误(真的只有一个)。
Error while processing route: accept-invitation Ember Data Request GET /api/users/invitation returned a 400
Error: Ember Data Request GET /api/users/invitation returned a 400
以前是(在 Ember 2.2.1 下):
Error while processing route: accept-invitation Adapter operation failed Error: Adapter operation failed
Error: Adapter operation failed
如果找不到令牌,我应该从服务器返回什么?这些消息看起来像是在 Ember 中发生了一些意想不到的事情。
我假设 400 会告诉 Ember 有一个错误,它会进入路由的错误状态。但相反,它会进入应用程序级别的错误状态,并在日志中吐出这些错误消息。
我期待服务器返回 400,所以我不确定 Ember 为何抱怨。我应该返回什么,我应该如何正确处理?
【问题讨论】:
-
你有没有试过这样的`handleResponse: function(status, headers, payload){ if(status === 400 && payload.error){ return new DS.InvalidError(payload.error); } 返回 this._super(...arguments); }`
-
谢谢@Bek - 如果我尝试这样做(并调整 InvalidError 的参数)我得到:处理路由时出错:accept-invitation 适配器拒绝提交,因为它无效错误:适配器拒绝了提交,因为它是无效的
标签: ember.js ember-data