Mesuti
@Mesuti

Как очистить значение xhr.response без перезагрузки страницы?

Привет!

Есть AJAX отправка a=1 или a=2
function sender(e) {
    let xhr = new XMLHttpRequest();
    xhr.open('POST', './file.php');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send('a=1' или 'a=2'); 
    xhr.addEventListener("readystatechange", () => {
      console.log(xhr.response);
    });
}


Обработчик file.php
if (a='1') {
    echo '1';
}
if (a='2') {
    echo '2';
}


Сначала отправляю a=1, получаю ответ 1.
Если, не перезагружая страницу, отправить a=2, то в консоли выводится 12.
А если перезагружаю страницу, то все нормально. Отправляю a=2, в консоли выводится 2.

Как очистить ответ сервера не перезагружая страницу? чтобы не выводился предыдущий ответ + новый ответ.
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
Если вас пугает, что именно в консоли и то и другое видно, то перед логгированием добавьте очистку: console.clear();
Ответ написан
Mesuti
@Mesuti Автор вопроса
Решил таким образом.
В ответах от php добавил пробелы
if (a='1') {
    echo '_1';
}
if (a='2') {
    echo '_2';
}


Нарезал ответы в массив и проверил содержимое

if (xhr.response.slice(' ').includes('1')) {
  // скрипты
}
if (xhr.response.slice(' ').includes('2')) {
  // скрипты
}


Вариант рабочий, но чувствуется костыль =)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы