我正在尝试使用jquery直接进行远程json调用。我正在尝试使用reddit api。 http://api.reddit.com。这将返回一个有效的json对象。jsonp请求不能在Firefox中工作
如果我调用一个本地文件(这是从保存到本地磁盘的网站返回的东西),事情正常。
$(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的工作。请求已完成,但服务器返回的内容似乎被忽略。
这是我写的代码或服务器返回的内容的问题吗?我如何诊断这个问题?
编辑更改地址为真实的地址。
现在我更仔细地阅读了你的文章的顶部 - 你想要它去api.reddit.com吧? – Jennifer 2008-12-18 13:28:39