使用自定义代码获取Feed时,我遇到了xml网址问题。 我试图在谷歌和这里了解哪个解决方案,但我无法理解解决这个问题,所以我需要你的帮助,谢谢。
我得到的错误"跨源请求已阻止:同源策略禁止在http://www.straitstimes.com/news/sport/rss.xml读取远程资源。 (原因:CORS标题' Access-Control-Allow-Origin'缺失)。"
那么,如何为我的代码实现解决方案?
$.ajax({
type: 'GET',
url: 'http://www.straitstimes.com/news/sport/rss.xml',
contentType: "text/xml",
success: function (xml) {
$(xml).find("item").each(function () {
var title = $(this).find("title").text();
var description = $(this).find("description").text();
var linkUrl = $(this).find("link_url").text();
var link = "<a href='" + linkUrl + "' target='_blank'>Read More<a>";
$('#feedContainer').append('<article><h3>'+title+'</h3><p>'+description+link+'</p>');
});
},
error : function (xhr, ajaxOptions, thrownError){
console.log(xhr.status);
console.log(thrownError);
}
});
答案 0 :(得分:1)
使用YQL控制台我们可以克服这个跨源请求...只需更改URL并删除contentType ..查看此jsfiddle链接
$.ajax({
type: 'GET',
url: 'http://query.yahooapis.com/v1/public/yql?q=select * from xml where url ="http://www.thestar.com.my/RSS/News/Education/"',
success: function (xml) {
$(xml).find("item").each(function () {
var title = $(this).find("title").text();
var description = $(this).find("description").text();
var linkUrl = $(this).find("link_url").text();
var link = "<a href='" + linkUrl + "' target='_blank'>Read More<a>";
$('#feedContainer').append('<article><h3>'+title+'</h3><p>'+description+link+'</p>');
});
},
error : function (xhr, ajaxOptions, thrownError){
console.log(xhr.status);
console.log(thrownError);
}
});