【问题标题】:4xx Response from server doesn't include JSON data来自服务器的 4xx 响应不包含 JSON 数据
【发布时间】:2012-04-03 20:40:45
【问题描述】:

我有一个使用 JSON 执行 AJAX 表单帖子的 .NET MVC 站点。如果发生验证错误(即用户遗漏了必填字段等),则服务器在 JSON 对象中返回验证错误,并将响应的 HTTP 状态代码设置为 400 范围内的内容。在我们的本地机器上,这绝对可以正常工作。

但是在我们的 CI 环境中,它突然停止工作,没有任何代码更改。从服务器返回的响应带有正确的 HTTP 代码,但内容不是我们的控制器返回的 JSON,而是标准的 .NET 错误页面 HTML,即如果状态代码为 400,则只有 11 字节的“错误请求”响应.

每个验证错误的错误代码都是正确的,因此我们点击了正确的控制器/操作,并且验证工作正常,但由于某种原因,我们的 JSON 被剪掉了。任何想法为什么会发生这种情况?

【问题讨论】:

  • 您的服务器为 成功 验证返回 400 范围内的代码这一事实(即使 results 可能表明该项目实际上不是有效)是对 HTTP 的公然滥用。返回 200 OK 就像你一开始就应该做的那样,问题就神奇地消失了。
  • 那么有没有更合适的代码可以使用呢?还是在 JSON 中包含一个“成功”字段并在验证失败时返回 200 更好?

标签: ajax asp.net-mvc json validation


【解决方案1】:

您收到 400 代码,因为您的请求语法不正确。检查您是否真正正确地编码了 json 数据。

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2012-08-26
    • 2016-01-17
    • 2011-01-26
    相关资源
    最近更新 更多