1. ホーム
  2. javascript

[解決済み] 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダが存在しない エラー

2022-12-05 14:05:08

質問

ニュースサイトのフィードを取得しようとしています。googleのフィードAPIを使って、feedburnerのフィードをjsonに変換しようと思いました。次のURLは、フィードから10件の投稿をjson形式で返します。 http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://feeds.feedburner.com/mathrubhumi

上記のurlの内容を取得するために、以下のコードを使用しました。

$.ajax({
  type: "GET",
  dataType: "jsonp",
  url: "http://ajax.googleapis.com/ajax/services/feed/load",
  data: {
    "v": "1.0",
    "num": "10",
    "q": "http://feeds.feedburner.com/mathrubhumi"
  },
  success: function(result) {
    //.....
  }
});

を追加しましたが、うまくいかず、以下のようなエラーが発生します。

XMLHttpRequestを読み込むことができません http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http%3A%2F%2Ffeeds.feedburner.com%2Fmathrubhumi . 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。 リソースに存在しません。オリジン ' http://localhost ' は、したがって、アクセスを許可されません。

どうすれば直せますか?

どのように解決するのですか?

これはおそらく、Chromeがサポートしない localhost を経由して Access-Control-Allow-Origin -- Chromeの問題を見る

Chrome からは Access-Control-Allow-Origin をヘッダに送るには、/etc/hosts ファイルで localhost を他のドメインにエイリアスすればよいでしょう。

127.0.0.1   localhost yourdomain.com

では、スクリプトにアクセスする際に yourdomain.com の代わりに localhost に置き換えたら、呼び出しは成功するはずです。