Ошибка «Не удается прочитать свойство ‘status’ неопределенного значения» после запроса post и перезагрузки страницы

#javascript #jquery #ajax

#javascript #jquery #ajax

Вопрос:

Моя цель — выполнить следующие действия :

  1. POST-запрос
  2. Перезагрузите страницу
  3. Запрос НА УДАЛЕНИЕ

Однако, когда я выполняю запрос на УДАЛЕНИЕ, я получаю эту ошибку :

 VM360 main.js:68 Uncaught TypeError: Cannot read property 'status' of undefined
    at Object.<anonymous> (VM360 main.js:68)
    at u (VM357 jquery.min.js:2)
    at Object.fireWith [as resolveWith] (VM357 jquery.min.js:2)
    at k (VM357 jquery.min.js:2)
    at XMLHttpRequest.<anonymous> (VM357 jquery.min.js:2)
  

Это потому, что response не определено в методе удаления. Я не понимаю, почему…

Можете ли вы объяснить мне, почему произошла эта ошибка? И как это решить?

Спасибо за помощь!

JS

Публикация

 function newReservation() {
    let data = {
        "titre" : $("#titreoeuvre-newreservation").val(),
        "idusager" : $("#idUsagerNewReservation").val()
    };
    envoyerRequete('/reservations', data, "POST").always(function (response) {
        if(response.status.toString().startsWith('2')) {
            $('#newreservation-danger').hide();
            $('#newreservation-success').modal('show');
        }
        else {
            $('#newreservation-danger').show();
        }
    });
}
  

Перезагрузите

 $('.modal-success-ok').click(function () {
    location.reload();
});
  

Удалить

 function annulerReservation() {
    let data = {
        "titre" : $("#titreoeuvre-annulation").val(),
        "idusager" : $("#idUsagerAnnulerReservation").val()
    };
    envoyerRequete('/reservations', data, "DELETE").always(function (response) {
        if(response.status.toString().startsWith('2')) {
            $('#annulerreservation-danger').hide();
            $('#annulerreservation-success').modal('show');
        }
        else {
            $('#annulerreservation-danger').show();
        }
    });
}
  

Комментарии:

1. Вероятно, это означает, что ответ не определен. Выполните console.log(response) перед if(response.status...)

2. @Aniket G да, это undefined но почему? Потому что удаление работает с базой данных… Как ответ ajax может быть неопределенным?

3. Запрос POST, вероятно, ничего не вернул