javascript - 如何使用 jquery mobile 编辑 RSS 提要

标签 javascript jquery jquery-mobile mobile rss

我尝试使用以下代码从外部网站读取 RSS 提要:

$.get('http://myrssurl.com',function (XMLmediaArray) {
  $(XMLmediaArray).find('item').each(function() {
    var item = $(this);
    var title = item.find('title').text();
    var description = item.find('description').text();
    var link = item.find('link').text();
    var image = item.find('enclosure[type="image/jpeg"]').attr('url');
  });
});

我收到一条错误消息:

XMLHttpRequest cannot load http://myrssurl.com. No '*Access-Control-Allow-Origin*' header is present on the requested resource. Origin 'localhost is therefore not allowed access. 

你知道如何解决这个问题吗?

感谢您的帮助!与此同时,我尝试使用 GOOGLE RSS FEED 服务,但我还必须使用以下方法来处理问题:

在 html 文件中我使用这个:

<script type="text/javascript">
new rssdisplayer("msndiv","http://www.myrssfeedurl",6,"date, description");
</script>

并在 Javascript 文件中执行以下操作:

  google.load("feeds", "1"); //Load Google Ajax Feed API (version 1)

function rssdisplayer(divid, url, feedlimit, showoptions){
this.showoptions=showoptions || "" //get string of options to show ("date" and/or "description"wink
var feedpointer=new google.feeds.Feed(url) //create new instance of Google Ajax Feed API
feedpointer.setNumEntries(feedlimit) //set number of items to display
document.write('<div id="'+divid+'">Loading feed, </div>')
this.feedcontainer=document.getElementById(divid)
var displayer=this
feedpointer.load(function(r){displayer.formatoutput(r)}) //call Feed.load() to retrieve and output RSS feed
}


rssdisplayer.prototype.formatdate=function(datestr){
var itemdate=new Date(datestr)
return "<span style='color:gray; font-size: 90%'>"+itemdate.toLocaleString()+"</span>"
}


rssdisplayer.prototype.formatoutput=function(result){
if (!result.error){ //if RSS feed successfully fetched
var thefeeds=result.feed.entries //get all feed entries as a JSON array
var rssoutput="<ul>"
for (var i=0; i<thefeeds.length; i++){ //loop through entries
var itemtitle="<a href=\"" + thefeeds[i].link + "\">" + thefeeds[i].title + "</a>"
var itemdate=/date/i.test(this.showoptions)? this.formatdate(thefeeds[i].publishedDate) : ""
var itemdescription=/description/i.test(this.showoptions)? "<br />"+thefeeds[i].content : ""
rssoutput+="<li>" + itemtitle + " " + itemdate + itemdescription + "</li>"
}
rssoutput+="</ul>"
this.feedcontainer.innerHTML=rssoutput
}
else //else, output error
alert("Error fetching feeds: "+result.error.message)
}

但是当我在浏览器中执行它时,我收到此错误消息: 未捕获的ReferenceError:rssdisplayer未定义(索引):127(匿名函数)

你们知道问题出在哪里吗?

最佳答案

这是一个 AJAX 安全性:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS 您不得在其他网站上查询。

为了方便起见,我建议在您的服务器上解析 RSS 提要并以 JSON 重新格式化它。

关于javascript - 如何使用 jquery mobile 编辑 RSS 提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21684195/

相关文章:

javascript - 重新使用具有不同 "view models"的 EXTjs View

javascript - 如何重构检查图像(用作 css 背景法师)是否存在以返回 bool 值的函数?

javascript - 如何在悬停时指定图像的位置

javascript - 在可折叠内容标题中添加链接(拆分链接)- 缺少 css

javascript - 在运行时创建 JQuery Mobile slider 并设置 onchange 监听器

javascript - 如何使用 JS Push() 添加多个元素?

javascript - 使用 OnClick 函数 JavaScript 删除 Firebase 节点

javascript - 更新由 jQuery 更改的 Select 的 Angular ngModel

jquery - 当子元素上的hoverIntent触发时,如何取消父元素上的hoverIntent?

javascript - jQuery Mobile 弹出动态内容不刷新