Angularjs和访问控制源头访问URL

时间:2017-09-10 03:01:03

标签: angularjs node.js

我使用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.

1 个答案:

答案 0 :(得分:1)

这是因为您访问的网站强制执行same origin policy,因此您无法从其他网页访问该特定网址。 Web服务器告诉您的浏览器它不允许从您的域中访问自己,本例中为localhost。因此浏览器拒绝加载并触发错误。如果要进行开发,可以为浏览器关闭相同的原始策略。但显然你不能在生产中使用它。如果您是网站的所有者,则可以允许从localhost或您想要的任何其他域访问。