2011-11-04 64 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); 
     }); 
    } 
}); 
仅仅根据错误信息