2011-11-04 108 views
0

我需要一些幫助,因爲在閱讀dailymotion API後,多個來源無法弄清楚問題所在。 我試圖通過來回特定的視頻ID來從位DailyMotion數據:Dailymotion api使用json和jquery獲取視頻信息

$.getJSON('https://api.dailymotion.com/video/' + encodeURIComponent(videoid) + '?fields=title,duration,user&callback=?', function(data) { 

    $.each(data, function(i, item){ 
     console.log(item); 
    }); 
}); 

但要響應:

"Invalid parameter `_' for `GET /video/<id>'" 

但問題是,試圖擊中同一個網址到瀏覽器時,我採取json的迴應。

我試圖使它與.getScript函數一起工作,但又沒有結果。

$.getScript('https://api.dailymotion.com/video/' + encodeURIComponent(videoid) + '?fields=title,duration,user&callback=dailymotion_fetch_data_callback'); 

,之後通過閱讀它:

function dailymotion_fetch_data_callback(data) { 
$.each(data, function(i, item){ 
    console.log(item); 
}); 
} 

能否請你幫我告訴我的方式,我怎麼可以讀取數據推到一個回調函數後的JSON響應?

+0

查找找到另一種方式,它好像'encodeURIComponent方法(視頻ID)'將返回「_」。 –

+0

謝謝你的回答。這不是這種情況,因爲我試圖改變這種情況,並給出一個修復ID比變量,但問題似乎與ID無關。 正如我所說,如果我把生成的網址並將其粘貼到瀏覽器,我採取了一個結構良好的JSON。 – mike

+0

你可以把你的代碼放在jsfiddle上嗎?另外,出於好奇,你有沒有檢查過,看看它是否可能是API的一個已知問題? –

回答

0

這裏是你將如何處理這個使用JSONP(參考http://jsfiddle.net/Ehxxn/6/

HTML回調的例子

<script type="text/javascript" language="javascript" src="https://api.dailymotion.com/video/xlu5dd?fields=title,duration,user&callback=handleData"></script> 
<div id="result"></div> 

JAVASCRIPT

function handleData(data) { 
     $.each(data, function(i, item){ 
      $('#result').append(item); 
     }); 
} 
3

當使用JSONP (帶回調的json),$.getJSON函數將參數= {timestamp}(因此無效參數''錯誤)附加到您的查詢中,以幫助防止使用其他URL進行緩存。您可以禁用此功能,但您需要改爲使用$.ajax語法。不幸的是,這可能會導致您的請求被瀏覽器緩存。你可能會看到你可以在$.ajaxdocumentation

$.ajax({ 
    type: "GET", 
    url:"https://api.dailymotion.com/video/" + encodeURIComponent(videoid) + "?fields=title,duration,user", 
    dataType: "jsonp", 
    cache: true, 
    success: function(data) { 
     $.each(data, function(i, item){ 
      console.log(item); 
     }); 
    } 
}); 
僅僅根據錯誤信息