【问题标题】:jquery ajax get XML from another domainjquery ajax 从另一个域获取 XML
【发布时间】:2012-10-11 18:45:30
【问题描述】:

嘿,这里是我的代码,我必须从 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>

问题是它出错了。我确定这是因为尝试读取它的域名不同,所以我该如何解决它才能做到这一点?

【问题讨论】:

  • 是否有可能从该站点请求 jsonp 响应而不是 XML?

标签: ajax jquery get vimeo


【解决方案1】:

您不能通过使用 XML 跨不同域的 jQuery 的 ajax 来做到这一点,如果可以从该 url 获取 json 响应,您可以使用 callback=? 像在其他答案中一样获取 jsonp 响应

从服务器端获取 XML 响应应该没有问题,您应该尝试该路由

【讨论】:

    【解决方案2】:

    通过以下方式实现:

     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);
     });
    

    【讨论】:

      【解决方案3】:

      我认为答案是将回调设置为“?”至少它通常适合我。这至少适用于 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)}
      });
      

      【讨论】:

      • 是的,它仅适用于 JSONP...我将更改我的代码以反映这一点。
      猜你喜欢
      • 2018-07-23
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多