редирект jQuery не работает в Firefox - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь добиться перенаправления после отправки значений в мой php-скрипт. Значение отправляется в скрипт правильно, но перенаправление не работает в Firefox, в chrome он также работает нормально.

Это фрагмент кода, куда я помещаю редирект.

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var response = xmlhttp.responseText;
            // Show a thank you message
            var theLanguage = $('html').attr("lang");
            if (theLanguage == "nl-NL") {
              url = "/Thanks/";
              $(location).attr("href", url);
            }
            else if (theLanguage == "fr-FR") {
              url = "/fr/merci/";
              $(location).attr("href", url);
            }
            else {
              url = "/en/thanks/";
              $(location).attr("href", url);
            }
        }

Может кто-нибудь сказать мнеКаков лучший способ сделать то, что кросс-браузер совместим?

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Почему бы просто не отправить форму и не перенаправить с сервера?

Если вы не можете просто сделать это, тогда

  1. Используйте jQuery, так как она у вас есть
  2. protectDefault для события submit, чтобы не отправлять форму

Скорее всего, вам нужно это вместо вашего xmlhttprequest. Обратите внимание на protectDefault

$(function() {
  $("#yourFormId").on("submit", function(e) {
    e.preventDefault(); // stop the submission
    $.ajax({
      type: 'post',
      url: 'yourserverproces.php', // this.action will work if the form has an action
      data: $(this).serialize(),
      success: function(response) {
        // Show a thank you message
        var theLanguage = $('html').attr("lang"),
          url = "/en/thanks/";
        if (theLanguage == "nl-NL") {
          url = "/Thanks/";
        } else if (theLanguage == "fr-FR") {
          url = "/fr/merci/";
        }
        location.href = url;
      },
      error: function(xhr, textStatus, error){
        console.log(xhr.statusText);
        console.log(textStatus);
        console.log(error);
      }
    });
  });
});
0 голосов
/ 25 октября 2019

location.href = "url" должно работать, но если это вызывает слишком много проблем, вы также можете попробовать window.location.assign("url")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...