Ошибка jQuery ajax при вводе «пароля» в поле пароля

#jquery #ajax #input #passwords

#jquery #ajax #ввод #пароли

Вопрос:

Это очень странная ошибка, и я надеюсь, что кто-то сталкивался с ней раньше.

Я использую метод jQuery $.ajax для отправки данных из скрипта входа в систему. Каждый раз, когда я обновляю страницу входа в систему и впервые ввожу слово «пароль» в поле пароля, срабатывает метод $.ajax error(), т. е. ajax не удается установить связь с сервером. Если я затем повторю попытку без обновления страницы, ей удастся связаться с сервером без сбоев.

Итак, подводя итог, ввод слова «пароль» в поле ввода пароля приводит к сбою $.ajax. Клянусь, я это не выдумываю!

 var action = $('#myForm').attr('action');
var email = $('#myForm input[name=email]').val();
var password = $('#myForm input[name=password]').val();

$.ajax({    

    url: action,
    type: 'POST',
    data: {
        email: email,
        password: password
    },
    dataType: 'json',
    timeout: 20000,
    cache: false,

    error: function(xhr,status,error){

        alert('Cannot communicate');

    },

    success: function(data){

        alert('OK');

    }

});
  

Комментарии:

1. Я не вижу ничего, что выделялось бы в отношении вашей ошибки. Я тоже хотел бы узнать, какие параметры статуса / ошибки содержатся в функции ошибки. Я предполагаю, что показанный вами код является выдержкой из какой-то функции, которая выполняется при нажатии кнопки отправки или что-то в этом роде …? Кроме того, для краткости и чтобы избежать повторного запроса DOM для одного и того же элемента (#myForm) 3 раза, я бы закодировал его, как показано на этом рисунке: pastie.textmate.org/private/rcpohw1igkqucl77v2w

Ответ №1:

Извините за пустую трату времени, но я только что обнаружил проблему, и это не была ошибка jQuery. Я возвращал искаженный объект json, который вызвал метод error(). Иногда вы не можете увидеть леса для деревьев после кодирования в течение 16 часов подряд.