jQuery getJSON работает локально, но не через кросс-домен

Я искал ФОРЕВЕР и не могу придумать окончательного ответа на мою проблему. Так что вот оно. У меня есть JSON файл (я пошел в jsonlint, чтобы проверить и он говорит, что это хорошо), который выглядит так (некоторая информация изменена):

[{
        "position":"1",
        "category":"A",
        "title":"Title to first story",
        "description":"The first story."
    },
    {
        "position":"2",
        "category":"B",
        "title":"Title to second story",
        "description":"The second story"
    },
    {
        "position":"3",
        "category":"B",
        "title":"Title to third story",
        "description":"The third story"
    }
]

Я использовал jQuery, чтобы разобрать и поместить на html страницу, используя эту функцию:

$.getJSON('page.json', function(data) {
  var items = [];

  $.each(data.reponse, function(item, i) {
    items.push('<li id="' + i.position + '">' + i.title + ' - ' + i.description + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});

Он работает отлично! Теперь возникает моя проблема, JSON файл не будет размещен локально, а на самом деле будет размещен на отдельном домене. Поэтому я изменил свой код следующим образом (после некоторого прочтения) в надежде заставить его работать:

$.getJSON('http://www.otherdomain.com/page.json?format=json&callback=?', function(data) {
  var items = [];

  $.each(data.reponse, function(item, i) {
    items.push('<li id="' + i.position + '">' + i.title + ' - ' + i.description + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});

Добавив строку 'callback', я перестал получать ошибку "Failed to load resource" (Не удалось загрузить ресурс). Однако, ничего не происходит. Как будто функции, которую я добавил, там даже нет. Я пытался вытащить все это и добавить простое 'alert(data)', но это даже не загорелось. Что я делаю не так? Большая проблема в том, что я на 100% ограничен только HTML и JavaScript для работы (не мой выбор). Спасибо за любую помощь!

РЕДАКТИРОВАНИЕ Хорошо, у меня нет возможности для другого сервера динамически добавлять что-либо в файл json. Поэтому я модифицировал функцию вокруг json (меньший пример):

storyData(
[{
        "position":"1",
        "category":"A",
        "title":"Title to first story",
        "description":"The first story."
    }
])

Теперь все работает! Спасибо за помощь!

12
задан hippietrail 3 August 2012 в 12:35
поделиться