У меня проблема.Обновление динамической страницы от AJAX
Я использую AJAX для загрузки страниц, и он работает правильно, но я не могу избежать ошибки.
Когда я загружаю страницу, первый раз она работает правильно, но затем я перехожу на другую страницу, AJAX загружает страницу, которую я хочу, но у нее есть двойные теги, такие как <head>
и <footer>
.
Я имею в виду, когда я загружаю страницу во второй раз, страница загружает одну и ту же страницу в <div>
. Это как на картинке.
Я использую шаблоны кода, как это:
<?php echo $header ?>
My content
<?php echo $footer ?>
И каждая страница загрузки и тот же код, после того, как я вернусь на предыдущую страницу по ссылке.
Мой Аякса код:
function showContent(link) {
var cont = document.getElementById('content');
var loading = document.getElementById('loading');
window.history.replaceState('', 'Title', link);
cont.innerHTML = loading.innerHTML;
var http = createRequestObject(); // создаем ajax-объект
if(http) {
http.open('get', link); // инициируем загрузку страницы
http.onreadystatechange = function() { // назначаем асинхронный обработчик события
if(http.readyState == 4) {
cont.innerHTML = http.responseText; // присваиваем содержимое
}
}
http.send(null);
} else {
document.location = link; // если ajax-объект не удается создать, просто перенаправляем на адрес
}
}
// создание ajax объекта
function createRequestObject() {
try { return new XMLHttpRequest() }
catch(e) {
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e) {
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}
}
Что я могу сделать? Потому что, если я удаляю теги header и footer, у моей страницы вообще нет дизайна. И как видите, я меняю URL (важно для меня).
Мне нужно решение, которое поможет мне загрузить шаблоны без двойной маркировки.
Что делает 'console.log (http.responseText)' на втором показе клика? Это скажет вам, есть ли проблема на вашем скрипте сервера, который обеспечивает содержимое страницы. – bloodyKnuckles