【问题标题】:should response headers (i.e. 400) be used to indicate errors (particularily with x-editable)是否应该使用响应标头(即 400)来指示错误(尤其是使用 x-editable 时)
【发布时间】:2015-04-22 21:15:27
【问题描述】:

使用http://vitalets.github.io/x-editable/ 插件。发布结果后,它有两个回调:errorsuccess

error 将在服务器没有响应 200 标头时触发。因此,服务器可以验证一些数据,并在失败时提供 400 响应以及一些将由客户端接收的相关文本。我认为 qbaka/GA/etc 等 JavaScript 跟踪解决方案不会将 400 状态响应记录为错误,但仍然不是肯定的。

另一方面,success 将在服务器响应 200 标头时触发,并且可以返回包含错误状态等的 JSON,从而无需使用 error 回调。

一种方法比另一种更合适吗?为什么?

【问题讨论】:

    标签: javascript http http-headers x-editable


    【解决方案1】:

    最好的答案在于 RESTful 服务的目标和架构:-

    As stated in this article by IBM

    RESTful Web 服务的一个关键特征是以遵循 RFC 2616 定义的协议的方式显式使用 HTTP 方法

    有一个很好的资源 here 解释了 HTTP 状态代码的预期用途,复制到我的响应中太多了,但是对于 400 代码,这里有一个解释:-

    由于语法错误,服务器无法理解请求。客户端不应该在没有修改的情况下重复请求。

    【讨论】:

    • 谢谢凯恩,很棒的链接!一个问题是客户端提交了一些数据,但没有验证,因为它在数据库中不是唯一的。然后在数据库中删除了一条记录,因此原始请求将是唯一的。但是,客户端不会因为之前的 400 代码而重复请求。有效的担忧?
    猜你喜欢
    • 2016-06-30
    • 1970-01-01
    • 2019-03-09
    • 2017-08-31
    • 1970-01-01
    • 2020-09-19
    • 2012-10-02
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多