jQuery .getJSON не работает - PullRequest
2 голосов
/ 08 июля 2010

Я только учусь, как использовать ajax / json с jquery, и наткнулся на кирпичную стену, которую я просто не понимаю.

Вот мой код - ОЧЕНЬ простой код:

$("#click").click(function() {
    $.getJSON("http://localhost/jsontest/a.json", function(data) {
        alert("done"); 
    });

   });

По сути, загрузите a.json и отправьте на экран предупреждение о том, что готово.

Вот содержимое a.json:

{"done": "37"}

Вот и все.

Это не работает, хотя ... предупреждение не отображается.

Любые люди идеи?

Ответы [ 4 ]

9 голосов
/ 22 октября 2012

У меня только что возникла проблема, когда я не отформатировал данные в файле, который они получают правильно.Если в файле JSON что-то не так, он молча терпит неудачу.Хотя вы всегда можете добавить .fail (функцию), чтобы обнаружить ошибку.

Я использовал: { varname:"my string" }

Когда я должен был использовать: { "varname":"mystring" }

По этой причине я думаю, что было бы лучше использовать get для извлечения данных с помощью $ .get (), а затем использовать JSON.parse ().Таким образом, вы узнаете, не удалось ли получить или проанализировать.

1 голос
/ 08 июля 2010

Попробуйте это:

$.getJSON("http://localhost/jsontest/a.json", { }, function(data) {
    alert(data.done);
});
1 голос
/ 08 июля 2010

Ставлю на это: вы забыли поместить этот установочный код в <script> блок после вашего элемента "click" или в обработчик "ready":

$(function() {
  $('#click').click(function() { /* ... same stuff as you have ... */ });
});
1 голос
/ 08 июля 2010

Есть ли какая-либо ошибка, возвращенная из firebug?

Я бы начал с изменения:

$.getJSON("http://localhost/jsontest/a.json?callback=?", function(data) {

на:

$.getJSON("http://localhost/jsontest/a.json", 'callback=?', function(data) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...