是否有可能做出这样的 HTTP 响应,浏览器会忽略它并继续显示先前显示的页面?

我的意思是以下场景:

a) 用户点击某物

b) 一些 POST 发送到服务器(或 GET,但我们还是使用 POST,因为更有趣)

c) 服务器由于某种原因决定此时不想发送回复

d) 服务器发送专门设计的响应

e) 浏览器不显示错误页面,不显示空页面,不重定向到任何地方,不重新加载 - 只是继续显示它所显示的内容,就好像用户从未提交表单一样

PS 当然它可以用 AJAX 包装,但我问是否可以使用简单的非 JavaScript 解决方案

有帮助吗?

解决方案

尝试回HTTP204没有内容。看到描述的这种反应的代码中 RFC2616(超文本传送协议-HTTP/1.1) 在那里说:

如果客户是一个用户的代理,它不应该改变它的文件景, 这造成了请求应发送。这种反应是主要目的是允许 输入的行动将不会引起变化的用户代理的活 文件来看,虽然任何新的或更新的元信应该被应用到 文件目前正在用户代理的活动图。

其他提示

这是通常称为的方法 阿贾克斯. 。这个需要 JavaScript, ,以及 XMLHttp请求 功能。

编辑:注意到底部的“PS”。这 204响应 另一个答案中建议的看起来它可能是一个有效的非 Javascript 解决方案。

假设你做到这一点。

什么是用户怎么办?再次提交过程的形式,。

几次。

于是他们决定你的网站被打破,离开了。

我认为你需要Javascript功能来做到这一点,您可以发送该请求,并根据服务器响应的JavaScript可以做一回假,避免了实际页面的刷新/重载。

我不知道204的反应,但也许这样你可以从服务器端做到这一点。

做的另一种方式(也是JavaScript)的做一回假,右后请求发送,并根据服务器响应(使用Ajax),您可以修改实际的页面或用户发送到另一个页面。

没有。 HTTP协议包括一个请求 - 响应周期的。服务器不能决定不应答(它可以,但随后它打破的协议和commiting错误)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top