2017-09-10 10 views
0

私はバックエンドとangularjsとしてnodejsを使用しています。URLにアクセスするAngularjsとアクセス制御元のヘッダー

私のフロントエンドアプリでは、「http://feeds.folha.uol.com.br/folha/ciencia/rss091.xml」のフィードを読む必要があります。

アクセス制御元のエラーが発生しています。

私はこのurlでPostmanアプリケーションを使用するか、ブラウザに正しく入力すればエラーが発生しないため、わかりません。

私は間違っていますか?

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

["No 'Access-Control-Allow-Origin'ヘッダーが要求されたリソースに存在します]](https://stackoverflow.com/questions/20035101/no-access-control-allow-origin-ヘッダーが存在することが要求されたリソースに存在する) – Claies

+0

ここでは、このエラーに関する文字通り**数百の**の質問があり、それらはすべて同じことを言う*。ブラウザーはPostmanと同じように動作しません。フィードを取得しようとしているWebサイトからのアクセスが許可されていない限り、そのようにデータを取得することはできません。 CORSはセキュリティ機能です。あなたがやろうとしていることを止めるために積極的に設計されています。 – Claies

+0

私は他のアプリを使用しているデルファイ、私は問題なくURLにアクセスすることができます。申し訳ありませんが、何が間違っているのか分かりません。 –

答えて

1

その理由は、あなたがそれにアクセスできないようにあなたは、強制same origin policyにアクセスしているサイト別のWebページからの特定のURL Webサーバーは、この場合はローカルホスト(localhost)からのアクセスを許可していないことをブラウザに通知します。ブラウザはロードを拒否し、エラーを発生させます。開発目的で使用したい場合は、ブラウザの同じ発信元ポリシーをオフにすることができます。しかし、明らかに生産では使用できません。あなたがウェブサイトの所有者であれば、必要に応じてローカルホストやその他のドメインからのアクセスを許可することができます。

+0

よろしくお願いいたします。私はします –

関連する問題