Подробнее о перенаправлении 303

Вчера Питер Боутон упомянул, что перенаправление 303 можно использовать для преобразования в удобный для GET запрос.

В: Как это делается? Предположим, что у меня есть форма:

<form method="post">
<button type="submit" name="Save">Save</button>
</form>

Тогда как вы делаете перенаправление 303, чтобы пользователь не отправлял то же самое, нажав F5?

Примечание: Начиная с bootstrap 3, теперь я использую кнопку type = submit в качестве входного типа = submit.

2 ответа

Вы можете использовать

Дополнительную информацию см. на странице https://learn.adobe.com/wiki/display/coldfusionen/cflocation.


Одна идея, с которой я играю, вовсе не представляет форму. Вместо этого я меняю кнопку type = "submit" на кнопку type = "button", и JavaScript выполняет вызов AJAX для сохранения формы, а затем делает window.replace так, что когда пользователь нажимает кнопку "Назад", у них нет длинный хвост истории браузера:

Вот моя форма:

<form method="post">
 <button type="button" id="Save">Save</button>
</form>

И вот мой JavaScript:

(function() {
 $(document).on('click','#Save',SaveClicked);
 function SaveClicked() {
 var local = {};

 local.data = {};
 local.data.method = 'Save';
 local.dataType = 'text'; // no return value.
 local.Promise = $.ajax('xxx.cfc',local);
 local.Promise.done(done);
 local.Promise.fail(fail);
 }
 function done(data, textStatus, jqXHR) {
 window.location.replace(window.location.pathname);
 }
 function fail(jqXHR, textStatus, errorThrown) {
 debugger;
 }
})();

licensed under cc by-sa 3.0 with attribution.