Ajax调用将读取指向xml文件的链接,但不会读取来自订阅源的链接

时间:2014-07-08 14:56:38

标签: jquery ajax xml feed

我觉得这个问题的答案就在我面前,但我似乎无法找到答案。我已经构建了一个轻量级的xml阅读器,我可以在前端轻松使用多个源(来自同一个源)。

我注意到,如果我尝试提取实际的Feed链接,但是如果我将Feed链接保存为xml文件,则上传到Dropbox,并从中拉出来它可以正常工作。

有谁知道我可能会在哪里搞砸?

提前谢谢,这是我的代码:

$('.events-pull').each(function() {
  var URL = $(this).attr('data-link');
  var pullNum = $(this).attr('data-num');
  var $this = $(this);
  $this.append('<ul></ul>');
  $.ajax({
  type: 'POST',
  url: URL,
    dataType: 'xml',
  success: function(xml) {
    $(xml).find('item').each(function(i){
      if(i >= pullNum) {return false;}
      var title = $(this).find('title').text();
      var link = $(this).find('link').text();
      var month = $(this).find('pubDate').text().substring(7,11);
      var day = $(this).find('pubDate').text().substring(4,7);
      $this.find('ul').append('<li><strong>'+month+' '+day+' - </strong><a href="'+link+'" target="_blank" class="no-icon">'+title+'</a></li>');
    });
  },
  error: function() {$this.find('ul').append('<li>Oops! There was a problem loading these events.</li>');}
  });
});

如果这有帮助,这里有一个链接,你可以看到这两个实例: http://codepen.io/daless14/pen/AxwID

如果您手动访问每个链接,您会看到它们包含完全相同的内容。

2 个答案:

答案 0 :(得分:0)

试试这个,

    $(".events-pull ul").append("<li><strong>'+dateTime+'</strong><a href="+link+" target="_blank">'+title+'</a></li>");

答案 1 :(得分:0)

找出解决方案(Thanks to a comment in this resource)并认为我会分享。

我只需要在提取Feed的网站上启用CORS。

基本上我只是将下面的代码添加到我的.htaccess文件中:

Header add Access-Control-Allow-Origin “*”
Header add Access-Control-Allow-Headers “origin, x-requested-with, content-type”
Header add Access-Control-Allow-Methods “GET”