Задать вопрос
@Alexander9292

Как сделать переход на страницу благодарности после успешной отправки?

Есть вот такой код на чистом JS.
Подскажите, что необходимо здесь убрать или что стоит добавить, чтобы после успешной отправки меня перебросило на страницу благодарности?
form.addEventListener("submit", (e) => {
  e.preventDefault();

  const phoneInput = document.getElementById("quiz-phone");
  const emailInput = document.getElementById("quiz-email");

  answersObj.step4.phone = phoneInput.value;
  answersObj.step4.email = emailInput.value;

  if (phoneInput.value === "" || emailInput.value === "") {
    alert("Введите данные формы");
  } else if(emailInput.classList.contains('error')) {
    alert("Введите верный email");
  } else if(phoneInput.classList.contains('error')) {
    alert("Введите верный номер телефона");
  } else {
    postData(answersObj)
      .then((res) => res.json())
      .then((res) => {
        if (res.result === "success") {
          window.location = "/thanks.html";
          form.reset();
        } else {
          alert(res.status);
        }
      });
  }
});

const postData = (body) => {
  return fetch("./quiz-send.php", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify(body),
  });
};


В файле send.php есть header('Location: thanks.html');

На данный момент форма отправляется, но как уже поняли на страницу благодарности не переводит :(
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 1
@Che603000
c 2011 javascript
Скорее всего переход на страницу не происходит так как запрос fetch заканчивается ошибкой.
Перехватите ошибку используя catch
postData(answersObj)
      .then((res) => res.json())
      .then((res) => {
        if (res.result === "success") {
          window.location = "/thanks.html";
          form.reset();
        } else {
          alert(res.status);
        }
      })
      .catch(err=>alert(err.message)); // ошибка отправки формы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы