Вызов getJSON работает на IE 7, но не на Firefox 3 - PullRequest
4 голосов
/ 11 декабря 2008

У меня есть веб-приложение, использующее текущую версию JQuery, которому необходимо получить некоторые объекты JSON из веб-службы REST. Я использую следующий вызов $ .getJSON:

$. GetJSON ("http://localhost:17245/Service.svc/?format=json", function (data) {alert (data.id);});

Этот вызов прекрасно работает в IE7, и я могу без проблем вызвать службу в Fiddler. Я прошел через это в Firebug, но когда Firefox добирается до этой строки, выполнение javascript просто «умирает» без ошибок, без обратного вызова, без ничего.

Я также использовал $ .ajax и имею ту же проблему; отлично работает в IE, ничего в Firefox.

У кого-нибудь есть идеи? Я ОЧЕНЬ новичок в JQuery, поэтому, пожалуйста, будьте осторожны.

Спасибо, Джеймс

Ответы [ 7 ]

4 голосов
/ 11 декабря 2008

У меня была похожая проблема. Подпись $ .getJSON - это (url, data, callback), и я тоже не передавал аргумент data. Попробуйте это:

$.getJSON("http://localhost:17245/Service.svc/?format=json", {}, function(data) {alert(data.id);});
1 голос
/ 21 октября 2009

Не уверен, было ли это когда-нибудь решено, но похоже на ограничения межсайтовых скриптов в Firefox. Он обрабатывает номера портов на сервере разработки ASP.NET (localhost: 0000) как разные домены. Попробуйте разместить как службу, так и веб-приложение в IIS, который не использует номера портов.

0 голосов
/ 11 января 2009

Я видел похожие проблемы из-за ошибки в расширении Firebug. Попробуйте отключить его, если он у вас установлен.

0 голосов
/ 11 января 2009

Я только столкнулся с этой проблемой и обнаружил, что основной причиной является запятая в JSON, которая возвращается.

0 голосов
/ 24 декабря 2008

Если вы не можете заставить JQuery работать, попробуйте Fork . Посмотрите на Fork.Ajax и Fork.Json. Или используйте для анализа JSON json2.js Дуга Крокфорда с любой оболочкой XMLHttpRequest, которая вам нравится. Некоторое время назад я осматривал различные библиотеки Javascript, и по большей части они были слишком раздутыми и странными для меня; вам нужно выучить все маленькие странности библиотек.

0 голосов
/ 11 декабря 2008

Убедитесь, что вы обрабатываете ajaxError , иначе вы никогда не увидите ответ, если сервер вернет ошибку.

Кажется, в вашем вызове getJSON отсутствует аргумент data, как говорит palehorse. Я обычно пропускаю ноль для этого, когда мне это не нужно.

0 голосов
/ 11 декабря 2008

У меня некоторое время возникали проблемы с использованием веб-сервисов из jQuery, пока я не нашел плагин ajaxdotnet .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...