2012-03-04 33 views
0

提取通過JSON視頻有時我通過JSON提取YouTube視頻的時候得到這個錯誤,這裏有一個例子:無法從YouTube

的XMLHttpRequest無法加載https://gdata.youtube.com/feeds/api/users/IcarusTouma?&alt=json。 Access-Control-Allow-Origin不允許使用原產地http://localhost

我試過用jsonp,但是youtube不接受jsonp。

因此從YouTube上提取視頻。

$. getJSON ('https://gdata.youtube.com/feeds/api/videos/' + id_video + '? & alt = json', function (data) { 
if (typeof data! == "undefined" && data) 
{ 
    var title = data ['entry'] ['title'] ['$ t']; 
    var thumb = data ['entry'] ['media $ group'] ['media $ thumbnail'] [0] ['url']; 
    var title = data ['entry'] ['author'] [0] ['name'] ['$ t']; 
    $. getJSON ('https://gdata.youtube.com/feeds/api/users/' + author + '? & alt = json', function (data) { 

    author_thumbnail var = data ['entry'] ['media $ thumbnail'] ['url']; 
    $ ('.items').append(html_carousel (thumb, title, author_thumbnail, author, 5,' youtube ', id_video, author')); 

    }); 
} 
}); 
+1

嘗試添加「&callback =?」在你的網址。 – DG3 2012-03-04 04:07:53

+0

如果遠程服務器沒有在JSONP中回覆,那麼您無法從中獲取數據。 – Joseph 2012-03-04 04:11:57

回答

1

剛走檢查YouTube數據API的參考文檔,對於JSON和更新JSON-C格式,他們都接受JSON-P,允許您指定由callback GET字符串參數回調。此鏈接將證明這是真的:

https://gdata.youtube.com/feeds/api/videos?q=baseball&v=2&alt=jsonc&callback=functionName

長JSON對象返回被包裹在函數調用functionName,在這種情況下。下一URL是相同的呼叫,但在舊的(而且有些過時的)JSON格式:

https://gdata.youtube.com/feeds/api/videos?q=baseball&v=2&alt=json&callback=functionName

的數據是有點不同,但相同的結果集,包裹在另一個調用functionName。現在,這些電話是查詢以獲得與搜索參數(「棒球」)相匹配的視頻。但我確定仔細閱讀他們的參考文檔(對於JSON-CJSON格式)將產生您需要使其正常工作所需的內容,作爲JSONP調用,指定查詢字符串中的回調。