РЕДАКТИРОВАТЬ: Кажется, что форматирование строки JSON не является проблемой. Вместо этого я не вижу строку json в разделе ответов Firebug, и все же обработчики ошибок ajax не выбрасываются.
Привет! * * 1003
Итак, у меня есть настройка веб-службы, чтобы она возвращала очень простую строку json:
{"A":1,"Total":1}
Прочитав несколько потоков в stackoverflow и даже на странице документации jquery для $ .ajax, я узнал, что правильное форматирование строки json также должно иметь каждое значение в двойных кавычках.
{"A":"1","Total":"1"}
Я предполагаю, что именно поэтому мой jquery ajax не работает:
$.ajax({
type: "GET",
url: "http://test/testServices/InfoService.svc/GetInfoStats?pId=76&mId=2117",
dataType: "json",
error: function(xml,txtStatus, errorThrown){
alert(xml + " " + txtStatus + " " + errorThrown);
},
success: function (msg, test) {
alert("JSON DATA LOADED! " + msg);
$(".MainContainerBottom").html(msg);
}
});
$('.log').ajaxError(function () {
$(this).text('Triggered ajaxError handler.');
});
Окно консоли Firebug сообщает мне, что значение GET было «200 OK 398ms» последовательно, и если я проверяю тестовую переменную, оно также возвращает успех. MSN возвращает ноль, хотя!
Раздел «Параметры» и «Заголовки» Firebug также выглядит хорошо, но раздел «Ответ» пуст.
Я также возился с dataType $ .ajax и сначала использовал его как jsonp, а firebug вернул ошибку, сообщающую
Invalid Label
{"A":1,"Total":1}
Так что я знаю, что информация возвращается правильно, но я не могу получить к ней доступ. Я предполагаю, что это из-за проблемы форматирования, с которой я начал этот пост. Это правильно?
Если у меня нет возможности самостоятельно изменять веб-сервис, что я могу сделать, чтобы вывести данные json в мой сценарий?
Большое спасибо! <3
Джон </p>
РЕДАКТИРОВАТЬ: Для Guffa
Response Headers
Content-Length 39
Content-Type application/json; charset=utf-8
Server Microsoft-IIS/7.5
X-Powered-By ASP.NET
Date Fri, 12 Nov 2010 21:58:57 GMT
Request Headers
Host test
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9
Accept application/json, text/javascript, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Окончательное редактирование:
Я поговорил с парнем, который настраивал веб-сервис для нас, и, очевидно, были некоторые особые ограничения на информацию, отправляемую обратно. Он установил некоторые разрешения для нашего приложения на доступ к данным, и он работал безупречно.
Спасибо всем за помощь! Я действительно удивлен количеством людей, которые ответили и попытались помочь мне. Сейчас я определенно буду следить за сообществом stackoverflow и, надеюсь, однажды смогу помочь и другим:)