Dailymotion api получить информацию о видео с JSON и JQuery - PullRequest
0 голосов
/ 04 ноября 2011

Мне нужна помощь, потому что после прочтения api dailymotion и нескольких источников не удалось понять, в чем проблема.я пытаюсь получить данные из 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>'"

, но проблема заключается в том, что при попытке попасть на тот же URL, чтобыв браузере я принимаю ответ 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 ]

3 голосов
/ 04 ноября 2011

При использовании JSONP (json с обратным вызовом) функция $.getJSON добавляет параметр = {timestamp} (отсюда недопустимый параметр '' error) к вашему запросу, чтобы помочь предотвратить кэширование с помощьюдругой URL.Вы можете отключить это, но вместо этого вам нужно будет использовать синтаксис $.ajax.К сожалению, это может вызвать кеширование вашего запроса браузером.Вы могли бы найти другой путь, увидев то, что вы можете найти в $.ajax документации

$.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);
       });
    }
});
0 голосов
/ 04 ноября 2011

Вот пример того, как вы бы справились с обратным вызовом, используя 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);
       });
 }
...