2011-01-17 11 views
6

Ich habe ähnliche Fragen gefunden, aber keine der Antworten zeigen deutlich und einfach, wie Sie ein Thumbnail für ein Vimeo-Video mit jQuery und JSON erhalten. Wenn jemand helfen kann, wäre das toll, hier ist was ich habe, aber es zeigt im Moment nichts.Get Vimeo Vorschaubild für Video mit jQuery

var vimeoVideoID = '17631561'; 
var videoCallback = 'showThumb'; 

$.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=' + videoCallback, 

function(data){ 
$(".thumbs").attr('src',data[0].thumbnail_large); 
}); 

Vielen Dank im Voraus.

+0

Ich stimme zu, jQuery ist wirklich das beste, es löst alle Arten von Browserproblemen und ist auch gut. – goat

+0

Ich bin dann nicht der einzige :), wähle die Frage nach oben, wenn du kannst, da es helfen könnte, eine Antwort zu bekommen. –

Antwort

29

Ich glaube, Sie haben die "same origin policy" Problem. Sie sollten in Erwägung ziehen, ein serverseitiges Skript zu schreiben, indem Sie etwas wie "file_get_contents" oder "fopen" verwenden, um die Daten von vimeo zu erhalten, in json zu übersetzen und mit einem netten Ajax-Aufruf an Ihr Javascript auszugeben.

Wenn Sie ein serverseitiges Skript vermeiden möchten, können Sie den Datentyp JSONP verwenden.

var vimeoVideoID = '17631561'; 

$.getJSON('https://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=?', {format: "json"}, function(data) { 
     $(".thumbs").attr('src', data[0].thumbnail_large); 
}); 

Beachten Sie, dass die URL ein bisschen anders ist, als Sie es verwenden. Der Callback, den Sie als var definiert haben, ist nicht notwendig. Sie verbinden den getJSON direkt mit einer Funktion, so dass Sie den 'Callback' in der URL '?' Dies informiert die getJSON-Funktion, die erfolgreiche Datenrückgabe an die bereitgestellte Funktion zu übergeben.

Sie können meinen Code here testen. Ich hoffe es hilft!

+0

Ich würde nicht wirklich wissen, wie das geht und es scheint übertrieben und unnötig. Es sollte nur eine einfache JSON-Anfrage für das Bild sein, aber ich denke, vielleicht ist es ein guter Dank für die Informationen. –

+1

Wenn Sie kein serverseitiges Skript verwenden möchten, sollten Sie möglicherweise JSONP über JSON verwenden. http://en.wikipedia.org/wiki/JSON#JSONP http://vimeo.com/api/docs/response-formats#jsonp Es wird die Notwendigkeit für ein serverseitiges Skript umgehen, und ermöglichen Ihnen, zu tun, was Sie möchten. Es gibt Nachteile, weshalb ich auf die Wikipedia-Seite verlinke, die sie beschreibt. Hoffe das hilft! – Lance

+0

Ok, das klingt gut, wie würde ich den Code in der Frage ändern, um mit JSONP zu arbeiten. –

-1

Bitte überprüfen Sie this page; Vimeo hat einen neuen Methodenaufruf oEmbed, da Vimeo jetzt seine neue oEmbed-Technologie vorantreibt.

Die obige Methode schlägt auf IE fehl (keine Thumbs werden angezeigt).