【发布时间】: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