2010-08-25 108 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

編輯:哈哈,只注意到了自己的崗位上維基傑羅姆。我會在這裏把這個留給後人的緣故:)