Задать вопрос
@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".
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
coderisimo
@coderisimo Куратор тега JavaScript
Если вам нужно ОБНОВИТЬ весь hml , то какой смысл делать это через AJAX ? Что мешает просто перейти на новый url ?
Если вы отправляете форму и меняете страницу в соответствии с ответом сервера , но определите некий условный , который и будет меняться. В этом случае нужно учитывать обработчики , которые "висят" с прошлого раза. Это возможно, но более удобным инструментом может быть какой-нибудь vue.js
Ответ написан
@Do-oN
Используйте PJAX. С него полностью заменить страницу очень удобно
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 дек. 2024, в 11:07
10000 руб./за проект
23 дек. 2024, в 10:43
5000 руб./за проект
23 дек. 2024, в 10:32
2000 руб./за проект