@devsetup

Как сделать ajax переход по страницам без обновления всей страницы?

Всем привет. помогите пожалуйста , хочу сделать на сайте динамическое обновление страниц ajax
Есть скрипт от часть кода где выдает ошибку:
function loadPage(argUrl, argType, argParams) {
    loadingBar(1);

    if (argType == 1) {
        argType = "POST";
    } else {
        argType = "GET";

        // Store the url to the last page accessed
        if (argUrl != window.location) {
            window.history.pushState({path: argUrl}, '', argUrl);
        }
    }

    // Request the page
    $.ajax({
        url: argUrl,
        type: argType,
        data: argParams,
        success: function (data) {
            // Parse the output
            var result = jQuery.parseJSON(data);

            // Scroll the document at the top of the page
            $(document).scrollTop(0);

            // Update the document title
            document.title = result.title;

            // Update the document
            $('#app').replaceWith(result.body);

            // Reload functions
            reload();

            loadingBar(0);
        }
    });
}


Ошибка на var result = jQuery.parseJSON(data);
Uncaught SyntaxError: Unexpected token '<', " at Function.parse [as parseJSON] ()
at Object.success

самописный фреймворк
Главный файл майн нем вывод контента
<?php
           $getUrl = $_SERVER['REQUEST_URI'];
           $getUrl = substr($getUrl, 1);
           ?>


        <?=$content;?>
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
zkrvndm
@zkrvndm
Архитектор решений
Попробуй так:
function loadPage(argUrl, argType, argParams) {
    loadingBar(1);

    if (argType == 1) {
        argType = "POST";
    } else {
        argType = "GET";

        // Store the url to the last page accessed
        if (argUrl != window.location) {
            window.history.pushState({path: argUrl}, '', argUrl);
        }
    }

    // Request the page
    $.ajax({
        url: argUrl,
        type: argType,
        data: argParams,
        success: function (data) {
           
            // Парсим ответ:
            var result = $(new DOMParser().parseFromString(data, 'text/html'));

            // Скролл вверх:
            $(document).scrollTop(0);

            // Обновляем титул:
            document.title = result.find('title').html();

            // Обновляем чисто содержимое блока body:
            $('body').html(result.find('body').html());

            // Reload functions
            reload();

            loadingBar(0);

        }
    });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект