2015-01-05 2 views
0

Я ищу способ предотвратить отправку неизмененного запроса POST. Я знаю, что могу просто седеть кнопку «Отправить», как только она нажимается один раз, но я искал способ, может быть, заголовок HTTP, который просто игнорирует запрос, если у него нет измененного поля.Предотвращать отправку любых запросов POST

+0

Вы можете добавить параметр на запрос (флаг) и в вашем веб-сервиса обработать запрос, основанный на флаге. Если флаг установлен, не выполняйте код, если он не установлен. – brso05

+4

вы попробовали [Post-Redirect-Get pattern] (http://en.wikipedia.org/wiki/Post/Redirect/Get)? –

+1

Взгляните на [HTTP ETags] (http://en.wikipedia.org/wiki/HTTP_ETag) – charliebrownie

ответ

0

Вы можете использовать метод .serialize() из jQuery для сохранения последней отправки и сравнить это значение с новым значением.

Что-то вроде этого:

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/

0

Вы можете сохранить копию последнего запроса на клиенте и сравнить с ним новый запрос. Если они одинаковы, ничего не делайте. Он может быть в объекте javascript или даже в локальном хранилище или в файле cookie, если вы хотите, чтобы он перестал обновляться.

Смежные вопросы