получить JSON не работает для меня - PullRequest
0 голосов
/ 11 марта 2011

Я сделал php-файл, который анализирует JSON-объект. Вот пример результата из php:

{"ID":"951","NameOfEvent":"\u05dc\u05d9\u05d9\u05df \u05d4\u05e7\u05e8\u05d9\u05d5\u05e7\u05d9 \u05d1\u05e9\u05dc\u05d9\u05e9\u05d9","Plan":"\u05d4\u05d2\u05d5\u05e8\u05df - \u05dc\u05d9\u05d9\u05df \u05d4\u05e7\u05e8\u05d9\u05d5\u05e7\u05d9 \u05d1\u05e9\u05dc\u05d9\u05e9\u05d9 @ \u05d4\u05d2\u05d5\u05e8\u05df.\r\n\r\n\u05de\u05d5\u05e2\u05d3\u05d5\u05df \u05d4\u05d2\u05d5\u05e8\u05df \u05e9\u05d5\u05db\u05df \u05d1\u05e7\u05d9\u05d1\u05d5\u05e5 \u05de\u05e8\u05d7\u05d1\u05d9\u05d4 \u05e9\u05d1\u05e2\u05de\u05e7 \u05d9\u05d6\u05e8\u05e2\u05d0\u05dc.","Avg":"0","Views":"23"}

Я пытался получить данные, используя следующий код jquery:

function gettopevents()
{
$.getJSON("jsontopevents.php", function(json) {
    alert(json.NameOfEvent);
});
}

Я вызываю функцию с помощью кнопки с событием onclick.

Я не понимаю, что не так с моей функцией ... Я использую ту же функцию для чтения данных с графика Facebook, и она работает ..

edit: Странная вещь - она ​​работает в IE, но не в FF и Chrome

Спасибо.

1 Ответ

3 голосов
/ 11 марта 2011

То, что вы цитировали, работает: http://jsbin.com/iwumu4 Пробовал в IE6, IE7, IE8, Chrome 9, Firefox 3.6, Safari 5 и Opera 11 в Windows;и Chrome 9, Firefox 3.6 и Opera 11 в Linux.

Это говорит о том, что проблема кроется в другом месте кода.Лучше всего использовать отладчик.Chrome, Safari, Opera и IE8 имеют встроенные отладчики.Вы можете получить Firebug для Firefox, а VS.Net будет отлаживать JavaScript на IE6 и IE7.В отладчике сначала посмотрите на консоль, чтобы увидеть, есть ли сообщения об ошибках.Если нет, установите точку останова на вызове $.getJSON, а также на alert и проверьте данные.

Обновление : (После примечания ниже.) Ах, похоже на проблему кеширования.Я должен был подумать об этом.Поскольку getJSON использует GET, кэширование определенно является тем, что вам нужно отслеживать.

getJSON - это просто оболочка для ajax, так что вы можете использовать

$.ajax({
    url:      "jsontopevents.php",
    cache:    false,
    dataType: 'json',
    success:  function(json) {
        alert(json.NameOfEvent);
    }
});

Обратите внимание на аргумент cache.Подробнее см. Документы ajax.

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