我使用nodejs作为后端和angularjs。
在我的前端应用中,我需要阅读“http://feeds.folha.uol.com.br/folha/ciencia/rss091.xml”的Feed。
我收到了access-control-origin的错误。
我不明白,因为如果我将Postman应用程序与此URL一起使用或在浏览器中键入,则不会发生错误。
我做错了什么?
在我的控制器中我正在使用:
app.controller('OpenWeatherCtrl', ['$scope','$http',
function($scope,$http) {
$http.get('http://feeds.folha.uol.com.br/folha/ciencia/rss091.xml')
.then(function(data) {
if (data && data.length >0 ) {
$scope.news = data;
}
});
但我得到了下一个错误:
XMLHttpRequest cannot load http://feeds.folha.uol.com.br/folha/ciencia/rss091.xml.
Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
答案 0 :(得分:1)
这是因为您访问的网站强制执行same origin policy,因此您无法从其他网页访问该特定网址。 Web服务器告诉您的浏览器它不允许从您的域中访问自己,本例中为localhost。因此浏览器拒绝加载并触发错误。如果要进行开发,可以为浏览器关闭相同的原始策略。但显然你不能在生产中使用它。如果您是网站的所有者,则可以允许从localhost或您想要的任何其他域访问。