gpt4 book ai didi

ember.js - 如何使用 Ember Data (2.4.0-canary) 处理 400 错误

转载 作者:行者123 更新时间:2023-12-02 21:36:56 37 4
gpt4 key购买 nike

我无法确定我的问题是否与我的查询、我的响应或其他问题有关。

在我的 route ,我使用queryRecord:

model(params) {
return this.store.queryRecord('invitation', {
'invitation_token' : params.invitationToken
});
},

我在服务器端正确接收,但我正在测试邀请 token 不再存在的情况。因此,服务器返回带有 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

如果找不到 token ,我应该从服务器返回什么?这些消息让 Ember 看起来像是发生了意外的事情。

我假设 400 会告诉 Ember 有一个错误,并且它会进入路由的错误状态。但它会进入应用程序级别的错误状态,并在日志中输出这些错误消息。

期望服务器返回 400,所以我不确定 Ember 为何提示。我应该返回什么以及如何正确处理?

最佳答案

我认为您的应用程序应该返回格式不同的响应。根据the JSON API specification ,

Error objects MUST be returned as an array keyed by errors in the top level of a JSON API document.

该规范还指定可以提供以下成员等(请参阅完整列表的链接)。

title: a short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.

detail: a human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized

status: the HTTP status code applicable to this problem, expressed as a string value.

如果您尝试返回如下所示的内容,该工具的行为如何?

{
"errors": [
{
"status": "400",
"title": "Error finding invitation"
}
]
}

关于ember.js - 如何使用 Ember Data (2.4.0-canary) 处理 400 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570160/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com