@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');

На данный момент форма отправляется, но как уже поняли на страницу благодарности не переводит :(
  • Вопрос задан
  • 169 просмотров
Решения вопроса 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)); // ошибка отправки формы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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