0

Vimeo Web サイトから XML ファイルを読み取る必要があるコードは次のとおりです。

$(document).ready(function(){
  $.ajax({
    type: "GET",
    url: "http://vimeo.com/api/v2/video/51229736.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('video').each(function(){
            var thumbURL = $(this).attr('thumbnail_small');
            alert(thumbURL);
            $('#vidThumb').html('<img src="' + thumbURL + '">');
        });
    },
    error: function(err) {alert('err');}
  });
});

XML は次のようになります。

<videos>
  <script/>
    <video>
       <id>51229736</id>
       <title>CHATT HISTORY CENTER FILMS CAVALIER</title>
       <description/>
       <url>http://vimeo.com/51229736</url>
       <upload_date>2012-10-11 13:08:51</upload_date>
<thumbnail_small>http://b.vimeocdn.com/ts/353/072/353072229_100.jpg</thumbnail_small>
<thumbnail_medium>http://b.vimeocdn.com/ts/353/072/353072229_200.jpg</thumbnail_medium>
......
</video>
</videos>

問題は、それがエラーになることです。それを読み取ろうとしている別のドメイン名が原因であると確信しているので、それを行うにはどうすれば修正できますか?

4

3 に答える 3

1

答えは、コールバックを「?」に設定することだと思います。少なくともそれは通常私のためです。これは少なくともJSONで機能します。そして、それがJSONの場合、これが私が行う方法です。

var query = 'http://vimeo.com/api/v2/video/51229736.xml&callback=?';
$.ajax({
    url: query,
    type: 'GET',
    dataType: 'json',
    success: function(s) { 
       console.log('success' + s)
    },
    error: function(e) { console.log('something went wrong!', e)}
});
于 2012-10-11T18:54:58.133 に答える
1

XML を使用して異なるドメイン間で jQuery の ajax を介してそれを行うことはできません。callback=? その URL から json 応答を取得できる場合は、他の回答のように jsonp 応答を取得するために使用できます。

サーバー側から XML 応答を取得するのに問題はないはずです。おそらくそのルートを試す必要があります。

于 2012-10-11T18:56:55.880 に答える
1

以下を実行することでそれを達成しました。

 var vimeoVideoID = '51229736';
    $.getJSON('http://www.vimeo.com/api/v2/video/' + vimeoVideoID + '.json?callback=?', {format: "json"}, function(json) {
    $("#vidThumb").attr('src', json[0].thumbnail_small);
 });
于 2012-10-12T15:33:55.307 に答える