0

嘿,这里是我的代码,我必须从 Vimeo 网站读取 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 回答