尝试使用Javascript读取RSS Feed但代码不起作用

时间:2014-09-11 17:03:34

标签: javascript jquery jquery-mobile rss

我一直试图让下面的代码工作,但我没有运气。我无法弄清楚我做错了什么。我想要做的就是从链接中读取警报并将它们发布到列表中。我尝试了两种方法但两种方法都没有产生任何结果。有人可以指点我正确的方向吗?谢谢你的时间。

<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>

FIRST METHOD

<script>
$.get('http://www.wmata.com/rider_tools/metro_service_status/feeds/rail_Advisories.xml?',      
     function (data) 
     {
        $(data).find("item").each(function () 
        { 
             var el = $(this);
             console.log("Title");
         });
});
</script>

SECOND METHOD

<script>
$.ajax({ url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent('http://www.wmata.com/rider_tools/metro_service_status/feeds/rail_Advisories.xml?'),

dataType : 'json',
success  : function (data) {
    if (data.responseData.feed && data.responseData.feed.entries) {
    $.each(data.responseData.feed.entries, function (i, e) {
          console.log("Title");
    });
   }
  }
});
</script>
</html>

1 个答案:

答案 0 :(得分:1)

由于ajax调用的跨域性质,请使用 jsonp 作为数据类型:

$.ajax({ 
    url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q=' + encodeURIComponent('http://www.wmata.com/rider_tools/metro_service_status/feeds/rail_Advisories.xml?'),
    dataType : 'jsonp',
    success  : function (data) {
        console.log(data.responseData.feed.entries);  
        $.each(data.responseData.feed.entries, function (i, e) {
            console.log(e.content);
            $(".result").append("<p>" + e.content +  "</p>");
        });
    }    
});
  

这是一个有效的 DEMO