Вход

Просмотр полной версии : $.ajax(), запрос отправлен, но обработчик выполняет error


SkaN
30.09.2011, 16:40
Есть стандартный ajax запрос такого сожержания:
$.ajax({
url: "index.php?id=ajax&action=vote",
type: "POST",
data: {voice: voice, article: article},
dataType: "script",
beforeSend: function() {
$("#voting").html('<span><img src="styles/img/wait.gif">&nbspПодождите, отправка голоса...</span>');
$("#voting").fadeIn('slow');
},
success: function() {
loadRating(article);
switch (stat) {
case 'ok':
$("<div />").text("Спасибо, ваш голос принят!").addClass("no_error").replaceAll("#voting > *");
break;
case 'voted':
$("<div />").text("Вы уже голосовали").addClass("error").replaceAll("#voting > *");
break;
case 'ok':
$("<div />").text("Ошибка отправки голоса. Обратитесь к администратору.").addClass("error").replaceAll("#voting > *");
break;
}
$("#voting").fadeIn('slow');
setTimeout("$('#voting').fadeOut('slow')", 3000);
},
error: function() {
$("<div />").text("Невозможно отослать голос на сервер. Обратитесь к администратору.").addClass("error").replaceAll("#voting > *");
$("#voting").fadeIn('slow');
setTimeout("$('#voting').fadeOut('slow')", 3000);
}
});
Запрос точно отправляется, потому что количество голосов увеличивается, но выполняется обработчик error. Не могу понять причину

walik
30.09.2011, 16:50
Скорее всего тип ответа не соответствует тому который указан в dataType.
В error посмотрите какая ошибка вылетает:

error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}

SkaN
30.09.2011, 16:54
должен соответствовать, там возвращается var stat = 'somevalue', данном случае var stat = 'ok'
в другом аналогичном скрипте таких проблем не было, хотя абсолютно такая же система

SkaN
30.09.2011, 16:56
ой, оказалось в скрипте на сервере ошибка, потому не возвращалось то, что нужно