У меня очень странная ситуация. У меня есть функция AJAX, которая отправляет данные формы контроллеру php codeigniter, на ответ json, он должен иметь дело с ответом. первая часть работает, но позже часть, которая является функцией .done(), не работает, независимо от того, что я пытаюсь. вот мой сценарий:Ajax .done() не работает вместе для меня
var validator = $('#register-company-form').validate({
rules: {
title: {
required: true,
valueNotEquals: 0
},
/* rules here */
},
highlight: function (element) {
$(element).closest('.form-field').addClass('error-field');
},
unhighlight: function (element){
$(element).closest('.form-field').removeClass('error-field');
},
errorPlacement: function(error, element) {},
submitHandler: function(form) {
var formData = new FormData($(form)[0]);
$.ajax({
type: $(form).attr('method'),
url: $(form).attr('action'),
data: formData,
dataType: 'json',
cache: false,
contentType: false,
processData: false
})
.done(function (response) {
$(".form-field").removeClass("error-field");
$(".item-exists").hide();
if(response.Response == 401) {
$("#company_email").closest('.form-field').addClass('error-field');
$("#company_email").closest(".form-field").find(".item-exists").show();
} else if(response.Response == 402) {
$("#personal_email").closest('.form-field').addClass('error-field');
$("#personal_email").closest(".form-field").find(".item-exists").show();
} else if(response.Response == 403) {
$("#user_name").closest('.form-field').addClass('error-field');
$("#user_name").closest(".form-field").find(".item-exists").show();
} else if(response.Response == 200){
/* load my view */
}
});
return false;
}
});
Мой PHP возвращает скрипт следующего JSON ответа:
{ "Ответ": 200, "Data": нулевой, "сообщение": нулевая}
После получения этот ответ, моя функция .done() должна действовать в соответствии с ней и загружать страницу, которой она не является. Я попытался поставить console.log() и alert() в него, но теперь его ясность не отвечает. Есть ли другой способ сделать это или любую коррекцию в коде? Обратите внимание, что тот же код действительно отлично работает на другом сервере. Это произошло после миграции.
Большое вам спасибо за помощь!
В большинстве браузеров вы можете открыть инструменты разработчика и посмотреть на запроса и ответа, чтобы убедиться, что все так, как ожидалось. Вы это сделали? – flup
Что означает 'загрузка страницы'? Ничто в показанном коде не отражает ничего подобного – charlietfl
Используйте [Firebug] (http://getfirebug.com) и загляните в заголовки. – Jan