Запрос на изменение данных работает бесконечно долго

Помогите разобраться с запросом. У меня есть две страницы: Profile.html, на которой отображаются данные пользователя. При нажатии на кнопку Изменить, пользователь попадает на страницу ChangeProfile.html, где может изменять свои данные в специальной форме. На странице ChangeProfile.html есть кнопка сохранить. По нажатию на неё, пользователь автоматически попадает на страницу с Profile.html, где отображаются все его данные.

Мой код изменяет данные, но 1 или 2 раза). После чего, страница ChangeProfile.html не реагирует на нажатие на кнопку. В консоль выводиться "привет" из функции putData(url = '', data = {}). Если нажимать на кнопку ещё раз, будет выведено сообщении о том, что запрос ещё выполняется, но он выполняется очень долго.

Помогите пожалуйста разобраться. Не знаю, в чём ошибка.

async function putData(url = '', data = {}) {
    // Опции запроса
    const requestOptions = {
        method: 'PUT',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    };

    // Отправка запроса и обработка ответа
    try {
        console.log("Привет");
        const response = await fetch(url, requestOptions);
        const responseData = await response.json();
        return responseData;
    } catch (error) {
        console.error('Ошибка при выполнении запроса:', error);
        throw error;
    }
}


async function changeProfile() {
    if (isRequestPending) {
        console.log('Запрос уже выполняется, подождите...');
        return;
    }


    const token = localStorage.getItem('token');

    

    if (!token) {
        console.error('Токен не найден в localStorage');
        return;
    }


    // const idStudents = "1";
    const firstName = document.getElementById('changeFirstname').value;
    const secondName = document.getElementById('changeSecondname').value;
    const thirdName = document.getElementById('changeThirdname').value;
    const schoolName = document.getElementById('changeShoolName').value;
    const schoolClass = document.getElementById('changeClass').value;
    const schoolLetter = document.getElementById('changeLetterClass').value;
    const country = document.getElementById('changeCountry').value;
    const city = document.getElementById('changeCity').value;

    const data = { token, firstName, secondName, thirdName, schoolName, schoolClass, schoolLetter, country, city };

    try {
        isRequestPending = true;
        const response = await putData('/students/me', data);
        console.log('Данные успешно обновлены:', response);

        localStorage.setItem('profileData', JSON.stringify(response));

        window.location.href = "Profile.html";

    } catch (error) {
        console.error('Ошибка при обновлении данных:', error);
        // Ваш код для обработки ошибки
    } finally {
        isRequestPending = false;
    }

}

document.addEventListener('DOMContentLoaded', () => {
    const saveChangeBtn = document.getElementById('savingChange');
    // Назначаем обработчик события клика на кнопку регистрации
    saveChangeBtn.addEventListener('click', async (event) => {
        event.preventDefault(); // Предотвращаем стандартное действие кнопки (отправку формы)

        // Вызываем функцию регистрации
        await changeProfile();
    });
});

document.addEventListener('DOMContentLoaded', () => {
    // Получаем данные из localStorage
    const profileData = JSON.parse(localStorage.getItem('profileData'));

    if (profileData) {
        // Обновляем контент на странице
        const changeStudentProfile = document.getElementById('studentNameProfile');
        const changeSchoolProfile = document.getElementById('schoolNameProfile');
        const classNameProfile = document.getElementById('classNameProfile');
        const countryAndCityProfile = document.getElementById('countryCityProfile');

        changeStudentProfile.innerHTML = `${profileData.first_name} ${profileData.second_name} ${profileData.third_name}`;
        changeSchoolProfile.innerHTML = `${profileData.school_name}`;
        classNameProfile.innerHTML = `${profileData.school_class}${profileData.school_letter}`;
        countryAndCityProfile.innerHTML = `${profileData.country} - ${profileData.city}`;

        // Очищаем данные из localStorage после использования, если нужно
        localStorage.removeItem('profileData');
    } else {
        console.error('Данные профиля не найдены в localStorage');
    }
});


Ответы (0 шт):