防止发送未更改的 POST 个请求

Prevent unchanged POST requests be sent

我正在寻找一种方法来防止发送未更改的 POST 请求。 我知道我可以在按下 "Send" 按钮后立即将其变灰,但我一直在寻找一种方法,也许是 HTTP Header,如果没有请求,它只会忽略请求有任何更改的字段。

您可以在客户端保留上次请求的副本,并与新请求进行比较。如果它们相同,则什么也不做。它可以在 javascript 对象中,如果您希望它在页面刷新后仍然存在,甚至可以在本地存储或 cookie 中。

您可以使用 jQuery 中的 .serialize() 方法来保存最后一次提交并将此值与新值进行比较。

像这样:

var lastSubmit;
$( "#myForm" ).submit(function( event ) {
    event.preventDefault();
    var newSubmit=( $( this ).serialize() );
    if (lastSubmit==newSubmit) {
         alert("Don't submit")
    } else {
        alert("Submit")
        lastSubmit=newSubmit;
    }

});

我写了这个 jsfiddle 示例:http://jsfiddle.net/uxjynnhj/2/