Как сделать строку меню с AJAX с JS в бэкэнде Node E JS? - PullRequest
0 голосов
/ 04 мая 2020

После того, как я добавил коды AJAX, щелкнув по меню, страницы не загружаются. Код состояния - 200. Не могу понять, почему он не работает.

Вот код JavaScript для меню. Но это не работает. Должно быть в чистом JavaScript. Нет Jquery или любой другой библиотеки.

window.onload = function () {
    var menus = document.getElementsByClassName("menu");

    for (var i = 0; i < menus.length; i++) {
        menus[i].addEventListener("click", loadMenu);
        function loadMenu(e) {
            e.preventDefault();
            console.log(this.href);

            // INIT

            var xhr = new XMLHttpRequest();
            xhr.open("GET", this.href, true);

            // WHEN AJAX IS RUNNING
            xhr.onprogress = function () {
                console.log("Progress");
            };

            // WHEN THE PROCESS IS COMPLETE
            xhr.onload = function () {
                console.log("Done");
                console.log(this.status);
            };

            // WHEN AN ERROR IS ENCOUNTERED
            xhr.onerror = function () {
                console.log("Error");
            };

            // SEND
            xhr.send();
        }
    }
};

Вот код заголовка

<header>
    <ul>
        <% if (isAuthenticated) { %>
        <li><a class="menu" href="/dashboard">Dashboard</a></li>
        <li><a class="menu" href="/logout">Logout</a></li>
        <li><a class="menu" href="/projects">Projects</a></li>
        <li><a class="menu" href="/projects/new-project">New Project</a></li>

        <%}else{ %>

        <li><a class="menu" href="/login">Login</a></li>
        <li><a class="menu" href="/register">Register</a></li>

        <% } %>
        <li><a class="menu" href="/jobs">Jobs</a></li>
    </ul>
</header>
...