@Pazzetif

Ajax запрос работает в Mozilla, почему не работает в Chrome?

Использую вот это https://github.com/nk-o/ajax-contact-form

$('.pop-up-one').on('submit', function(e) {
    e.preventDefault();
        var $form = $(this);

        $.ajax({
            type: 'POST',
            url: $form.attr('action'),
            data: $form.serialize(),
            success: function (response) {
                response = JSON.parse(response);
                if (response.type && response.type === 'success') {

                    $form[0].reset();
                } else {

                }
            },
            error: function (response) {

            }
        });

});


<form class="pop-up-one" action="ajax-contact-form.php">
            <input type="text" placeholder="Введите ваше имя" name="name" required>
            <input type="text" placeholder="Введите ваш телефон" name="message">
            <input type="text" placeholder="E-mail" name="email" required>
            <button type="submit" class="button-pop-up">Отправить</button>
        </form>

5b2b369d1ca25500111812.gif
  • Вопрос задан
  • 561 просмотр
Решения вопроса 1
Jeer
@Jeer
уверенный пользователь
Возможно (но это не точно), что дело в Content-Type из Request. Либо .serialize() некорректно работает. Сейчас разберемся.

Попробуйте передать обычный объект, можно добавить функцию-парсер, например:
//serialize data function
function objectifyForm(formArray) {

  var returnArray = {};
  for (var i = 0; i < formArray.length; i++){
    returnArray[formArray[i]['name']] = formArray[i]['value'];
  }
  return returnArray;
}


Ну и, соответственно, изменить данные из поля data:
$.ajax({
            type: 'POST',
            url: $form.attr('action'),
            data: objectifyForm($form.serialize()),
            success: function (response) {


Так работает из обоих браузеров?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Batlab
PHP Senior | Python Middle | JS Junior
Так а в каком же месте он не работает?
Не работает обработчик формы, а именно ajax-contact-form.php, а не ajax.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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