是否可以进行这样的HTTP响应,浏览器会忽略它并继续显示以前显示的页面?
我的意思是以下情况:
a)用户点击内容
b)一些POST进入服务器(或GET,但让我们坚持使用POST更有趣)
c)服务器决定由于某种原因它此时不想发送回复d)服务器发送专门制作的回复
e)浏览器不显示错误页面,不显示空白页面,不重定向任何地方,不重新加载 - 只是一直显示它显示的内容,好像用户从未提交过表单PS当然它可以用AJAX包装,但我问是否可以使用简单的非JavaScript解决方案
答案 0 :(得分:12)
尝试返回HTTP 204 No Content。请参阅RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1 )中此响应代码的说明,其中包含:
如果客户端是用户代理,它不应该从中更改其文档视图 导致请求被发送。此响应主要是为了允许 输入操作,而不会导致更改用户代理的活动状态 文档视图,虽然任何新的或更新的元信息应该应用于 当前在用户代理的活动视图中的文档。
答案 1 :(得分:1)
这是一种通常称为AJAX的方法。它需要Javascript和XMLHttpRequest函数。
编辑:注意到底部的'PS'。另一个答案中建议的204 response看起来可能是一个有效的非Javascript解决方案。
答案 2 :(得分:1)
假设你这样做。
用户做什么?当然,再次提交表格。
几次。
然后他们决定你的网站坏了,然后离开。
答案 3 :(得分:0)
我认为您需要使用Javascript来执行此操作,您可以发送请求,并且根据服务器响应,Javascript可以返回false,从而避免刷新/重新加载实际页面。
我不知道204响应,但也许你可以从服务器端这样做。
另一种方法(也是Javascript)是在发送请求后立即返回false,并且根据服务器响应(使用ajax),您可以修改实际页面或将用户发送到另一个页面。 / p>
答案 4 :(得分:-2)
没有。 HTTP协议由请求 - 响应周期组成。服务器无法决定不回复(它可以,但它会破坏协议并提交错误)。