Невозможно получить JSON из вызова ajax JQuery
Вопрос
Я определил, что мой JSON, поступающий с сервера, действителен (вызов ajax вручную), но мне бы очень хотелось использовать JQuery.Я также определил, что URL-адрес «поста», отправляемый на сервер, правильный, используя firebug.Однако обратный вызов ошибки все еще срабатывает (ошибка анализа).Я также попробовал тип данных:текст.
Есть ли другие варианты, которые мне следует включить?
$(function() {
$("#submit").bind("click", function() {
$.ajax({
type: "post",
url: "http://myServer/cgi-bin/broker" ,
datatype: "json",
data: {'start' : start,'end' : end},
error: function(request,error){
alert(error);
},
success: function(request) {
alert(request.length);
}
}); // End ajax
}); // End bind
}); // End eventlistener
Решение
Вот несколько предложений, которые я бы попробовал:
1) указанный вами параметр «тип данных» должен быть «тип данных» (я полагаю, с учетом регистра)
2) попробуйте использовать опцию «contentType» следующим образом:
contentType: "application/json; charset=utf-8"
Я не уверен, насколько это поможет, поскольку оно используется в запросе на URL-адрес вашего сообщения, а не в ответе.Дополнительную информацию смотрите в этой статье: http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax(Это написано для asp.net, но может быть применимо)
3) Трижды проверьте вывод URL-адреса вашего сообщения и пропустите вывод через валидатор JSON, чтобы быть абсолютно уверенным, что он действителен и может быть преобразован в объект JSON. http://www.jsonlint.com
Надеюсь, что-то из этого поможет!
Другие советы
Почему myResult
вместо request
?
success: function(request) {
alert(myResult.length);
}
Параметр данных неправильный.Вот пример, который работает:
данные:{ индекс:ddl.selectedIndex },
При этом создается объект со свойством index со значением ddl.selectedIndex.
Вам необходимо удалить кавычки из строки параметров данных.
Удачи а