Dailymotion使用json和jquery获取视频信息

时间:2011-11-04 18:08:30

标签: javascript jquery json jsonp

我需要一些帮助,因为在阅读了dailymotion api后,多个来源无法找出问题所在。 我试图通过以下方式从特定视频ID中获取dailymotion中的数据:

$.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的响应吗?

2 个答案:

答案 0 :(得分:3)

当使用JSONP(带回调的json)时,$.getJSON函数会将参数 = {timestamp}(因此无效参数''错误)附加到查询中,以帮助防止缓存通过使用不同的URL。您可以禁用此功能,但您需要使用$.ajax语法。不幸的是,这可能会导致您的请求被浏览器缓存。您可以通过查看$.ajax documentation

中可以找到的内容找到另一种方法
$.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);
       });
    }
});

答案 1 :(得分: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);
       });
 }