Существует форма отправки запроса, на которую сервер будет отвечать либо обычным ответом 200/301 на перенаправление на другую страницу (это обрабатывается браузером внутри, ничего не поделать).
Зависит от запроса, ответ 200 означает, что некоторая часть DOM нуждается в обновлении, иначе перенаправление 301 на другую страницу.
Вот проблема, как обновить DOM с таким ответом? Если я использую обновление href
из responseURL
, он создает дублированный запрос как тот, который обрабатывается браузером внутри. Если я использую responseText
для обновления всего DOM с помощью document.write()
, появится предупреждение, и это будет плохая практика .
Как решить проблемы?
var form = ... //A form in the DOM
var xhttp = new XMLHttpRequest();
xhttp.onload = function() {
//This will produce 1 extra request
window.location.replace(this.responseURL);
//This will be warned and should be prohibited
document.write(this.response);
};
xhttp.open("post", form.getAttribute("action"), true);
xhttp.send(new FormData(form));