@alexandr_ftf

Как полностью заменить страницу с помощью AJAX?

Всем привет.
Как можно полностью очистить весь hml, включая head для последующей генерации нового контента из ответа сервера? Т.е. полная альтернатива отправки формы. Код:
var request=new XMLHttpRequest();
var pars="";
var url = location.href;
var query_filter=$('.query_filter').text();
pars+="query_filter="+query_filter;
request.open("POST",  url);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(pars);
request.onreadystatechange = function() {
	if (request.readyState != 4) return;
	if (request.status != 200) alert(request.status + ': ' + request.statusText);
	$('body').html(request.responseText)
}

Если вставлять ответ в body, то появляется два head, два доктайпа и т.д. Если вставлять в html ($('html')) то возникает ошибка "TypeError: doc.head is null".
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 2
coderisimo
@coderisimo Куратор тега JavaScript
Если вам нужно ОБНОВИТЬ весь hml , то какой смысл делать это через AJAX ? Что мешает просто перейти на новый url ?
Если вы отправляете форму и меняете страницу в соответствии с ответом сервера , но определите некий условный , который и будет меняться. В этом случае нужно учитывать обработчики , которые "висят" с прошлого раза. Это возможно, но более удобным инструментом может быть какой-нибудь vue.js
Ответ написан
@Do-oN
Используйте PJAX. С него полностью заменить страницу очень удобно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы