我无法弄清楚我的问题是否与我的查询或我的回复或其他内容有关。
在我的路线中,我使用queryRecord
:
model(params) {
return this.store.queryRecord('invitation', {
'invitation_token' : params.invitationToken
});
},
我在服务器端正确接收,但我正在测试邀请令牌不再存在的情况。因此,服务器返回带有json有效负载的400,其中包含错误的解释。
{"error":"Error finding invitation"}
但回到余烬一边,我只得到两个错误(实际上它只是一个)。
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会抱怨。我该怎么回事?我该如何正确处理呢?
答案 0 :(得分:3)
我相信您的应用程序应该返回格式不同的响应。根据{{3}},
错误对象必须作为由顶部错误键入的数组返回 JSON API文档的级别。
规范还规定可以提供以下成员(请参阅完整列表的链接)。
标题:一个简短的,人类可读的问题摘要,不应该是 从发生变为发生问题,除了 本地化的目的。
详细信息:一个人类可读的解释 具体到这个问题的发生。喜欢标题,这个领域 值可以本地化
状态:适用于此问题的HTTP状态代码,表示为 字符串值。
如果您尝试按照以下内容返回某些内容,那么工具的行为如何?
{
"errors": [
{
"status": "400",
"title": "Error finding invitation"
}
]
}