0

javascript / PHP (NOT AJAX) - 有没有办法在帖子提交并处于动态中后取消它?

  • 所以用户点击了发布按钮——一切都很好,表单已经提交 PHP 准备好捕捉细节了。
  • 无论出于何种原因,网络拥塞并且服务器没有响应。
  • 我想让用户有机会在一段时间后再次发帖。

发送后有没有办法取消实际的 POST?

有没有办法在服务器端实际检测到是否收到了帖子?

(在这种情况下,数据将保存在数据库中)

我在想象整个 post 过程在服务器端有一个开始和结束?

...

或者 - 有没有办法确定帖子不会去哪里。它失败了,就这样结束了吗?

4

2 回答 2

0

不,你不能中止它。您对此无能为力。

IS there a way to actually detect - on the server side - that a post was received?

是的!检查$_POST变量

于 2013-08-29T07:41:44.063 回答
0

如果您使用 AJAX 发布,那么您可以随时重新发布。收听回复,如果在一定时间内没有收到回复,请停止收听并重新发布。否则,您通过使用更改页面的 URL 来响应document.location = "MyNextPage.php

但是您应该知道,没有办法取消 POST 本身。如果它要到达服务器,它仍然会到达那里。即你可能会遭受双重发布。您可能应该在页面上引入一个变量,该变量是唯一的,这样就不会发生重复发布。

===问题参数更改后编辑===

如果您在页面上有一个独特的参数,当您提交帖子时 - 您还可以触发一个 javascript 计时器以在选定的时间段后重新提交。如果到那时页面还没有移动(因为服务器没有响应),javascript 计时器将触发,重新提交表单。(您将需要检查这是否适用于各种浏览器,因为该行为在很大程度上是未定义的)。

在服务器上,只需检查该唯一值是否已提交(检查数据库中的该值,然后将其写入,如果不存在则继续)。从而防止双重提交

于 2013-08-29T07:42:11.000 回答