Я пытаюсь выполнить простой удаленный вызов json с помощью jquery. Я пытаюсь использовать Reddit API. http://api.reddit.com. Возвращает действительный объект json.
Если я вызываю локальный файл (который возвращается с веб-сайта, сохраненного на моем локальном диске), все работает нормально.
$(document).ready(function() {
$.getJSON("js/reddit.json", function (json) {
$.each(json.data.children, function () {
title = this.data.title;
url = this.data.url;
$("#redditbox").append("<div><a href=\"" + url + "\">" + title + "</a><div>");
});
});
});
Если я тогда попытаюсь преобразовать его в удаленный вызов:
$(document).ready(function() {
$.getJSON("http://api.reddit.com", function (json) {
$.each(json.data.children, function () {
title = this.data.title;
url = this.data.url;
$("#redditbox").append("<div><a href=\"" + url + "\">" + title + "</a><div>");
});
});
});
он будет хорошо работать в Safari, но не в Firefox. Это ожидаемо, так как Firefox не делает удаленных вызовов из-за безопасности или чего-то еще. Хорошо.
В документах jquery говорят, что делать это так (jsonp):
$(document).ready(function() {
$.getJSON("http://api.reddit.com?jsoncallback=?", function (json) {
$.each(json.data.children, function () {
title = this.data.title;
url = this.data.url;
$("#redditbox").append("<div><a href=\"" + url + "\">" + title + "</a><div>");
});
});
});
однако теперь он перестает работать как в Safari, так и в Firefox. Запрос сделан, но то, что возвращается с сервера, похоже, игнорируется.
Это проблема с кодом, который я пишу, или с чем-то, что сервер возвращает? Как я могу диагностировать эту проблему?
РЕДАКТИРОВАТЬ Изменил адрес на реальный.