html返回状态 200,是否可以在非HTTP-200响应中返回HTML标记?

想象一下,您已经在页面上获得了一个表单,并且可以用AJAX的方式将该表单的数据发布到服务器上。 jQuery.post()。服务器判断数据无效,因为电子邮件地址不包含'@'符号。是否可以在非HTTP-200响应中返回HTML标记?

我认为HTTP的精神说服务器应该返回一个“HTTP 400错误请求”状态码与它的响应,以向客户端表明它不能处理请求。 原因(数据未验证)应在响应的正文中。

但我正在一个传统上实现“部分视图”的ASP.NET MVC环境中 - HTML片段作为响应发送,意味着当从AJAX请求收到时代入客户端的DOM。在这种模式下,服务器通常会构建表单的替代版本,填充(无效)提交的值,并用红色突出显示和警告来指示电子邮件地址无效并应予以纠正。客户端将该表单替换为其DOM,并且用户看到问题。

这是MVC世界中足够普遍的模式,但我没有看到有人照顾设置适当的HTTP状态代码。我无法弄清楚为什么。

是否可以在非HTTP-200响应中包含HTML标记以便客户端可以显示验证?我找不到任何表示不是的东西。

+0

“*我不明白为什么。*”只想对此发表评论:出于同样的原因,有时候所有的错误状态代码都映射到状态代码'200'作为一般安全问题的一部分你不希望攻击者看到堆栈跟踪,有时你也不希望你的错误代码传达,如果请求破坏或内部服务器错误破坏它,或任何'详细'。 (续) –

2011-05-25 09:48:07

+0

因此,您将允许范围外的所有内容全部映射到'200'。 '200'常常被挑选出来的原因有两个:(1)因为选择一个可以用作'4xx' /'5xx'的覆盖包装的错误代码并不是很简单; (2)因为它强制自动攻击工具分析邮件正文以查看它们是否触及了某些内容。 (续) –

2011-05-25 09:48:20

+0

当然,这是安全的,但我相当普遍,据我所知。所以也许这就是人们的“动机”。虽然(状态码映射通常在网络服务器级别完成,所以应用程序本身可以发送任何想要的内容),但他们也可能不会考虑它。 –

2011-05-25 09:48:47

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值