Не удалось получить JSON из JQuery ajax call
Я определил, что мой JSON, исходящий с сервера, действителен (выполняется вызов ajax вручную), но я действительно хотел бы использовать JQuery. Я также определил, что URL "post", отправляемый на сервер, является правильным, используя 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
Вот несколько советов, которые я хотел бы попробовать:
1) параметр "тип данных", который вы указали, должен быть "dataType" (с учетом регистра).
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
Надеюсь, что это поможет!
Ответ 2
Почему myResult
вместо request
?
success: function(request) {
alert(myResult.length);
}
Ответ 3
Неверный параметр данных. Вот пример, который работает:
данные: {index: ddl.selectedIndex},
Это конструирует объект с свойством, называемым индексом со значением ddl.selectedIndex.
Вам нужно удалить кавычки из строки параметров данных
Удачи
А