2010-08-25 69 views
1

我正在使用下面的URI来传递给jQuery的getJSON。jQuery getJSON的问题

var publicVidsUrl = 'http://api.publicvideos.org/v/0/clips?callback=?'; 

$.getJSON(publicVidsUrl, function(data){ 
    alert(data.length); 
}); 

...但它是失败的。虽然返回的JSON在JSON lint中有效,但我不太确定。转义的双引号看起来很好,但是我怀疑父数组中每个对象的双引号。

任何人都可以请帮忙澄清这个错误来自哪里?具体来说,我正在此错误从jQuery的在Firebug控制台:

(d || "").split is not a function 

我使用jQuery 1.4.2

+0

你安装了Firebug,所以你尝试了'console.dir(data);'在你的回调中? – meagar 2010-08-25 13:50:54

+7

该URL不返回[JSONP](http://en.wikipedia.org/wiki/JSON#JSONP)。 – James 2010-08-25 13:51:23

+1

“逃脱双引号似乎很好” - 但事实上,他们不是。 – 2010-08-25 13:56:19

回答

0

你要引用你的字符串,如果你在你的实际代码忽略他们,你”会得到一个语法错误别的发生之前:

var publicVidsUrl = "http://api.publicvideos.org/v/0/clips?callback=?"; 
+0

字符串周围有引号,单引号。 – jerome 2010-08-25 14:43:18

+0

当时我没有发布答案,并且由于某种原因我无法删除它;点击删除投票投票删除它,而不是直接删除它。 – meagar 2010-08-25 15:28:24

1

的API似乎不被意味着JavaScript的消费,更有可能它的意思来处理服务器端; PHP,Python,C#等。

您使用的任何JavaScript将因跨域问题而失败。除非您恰好在为publicvideos.org工作,或者有权在其域中发布脚本。

+0

如果您运行代码,您将看到getJSON函数确实会返回JSONP,我不认为这是跨域问题。 – jerome 2010-08-25 14:42:56

+0

不,它会返回JSON,这是不同的http://en.wikipedia.org/wiki/JSON#JSONP – 2010-08-25 16:03:41

0

对,所以我没有从公开视频API返回JSONP。希望得到这个排序莫名其妙。

0

这是无效的JSONP。有效的JSONP应该以一个?并且所有内容都应该用括号括起来。下面是正确的格式JSONP的例子:不支持

?({"posts":[{"id":"6", "url":"sample-6", "title":"sample 6", "content":"sample 6"},{"id":"5", "url":"sample-5", "title":"sample 5", "content":"sample 5"}]}); 
0

JSONP,所以客户端的请求,这个API将无法正常工作。

看一路底部: http://wiki.publicvideos.org/api/main

编辑:哈哈,只注意到了自己的岗位上维基杰罗姆。我会在这里把这个留给后人的缘故:)