自分のサーバーからデータをプルするChrome拡張機能を作成しています。一度に約4つのhttpRequestsを使用しますが、次のようなコンソールエラーが発生することがあります。
_XMLHttpRequest cannot load http://apps.radionsm.lv/apps/system/index.php?request=now. Origin chrome-extension://egkddfmbidfobhchndockbhjancbpfkd is not allowed by Access-Control-Allow-Origin.
_誰にとっても時々いいえ。
header('Access-Control-Allow-Origin: *');
を送信すると、修正されますか?
https://developer.chrome.com/extensions/xhr
そのドキュメントを読み、権限が正しく設定されていることを確認してください。
クロスオリジンリソースシェアリング(CORS)を実行しようとしています。悪いニュースは、仲介者としてのサーバーがなければ、通常のWebページでこれを行う方法がないということです。良いニュースは、chrome拡張子で、必要なURLにアクセスするためのアクセス許可を要求できることです。manifest.jsonファイルにこのようなものを入れるだけです。
サイトへの接続を許可します。
"permissions": [
"http://*.radionsm.lv/"
],
任意のサイトへの接続を許可します。
"permissions": [
"http://*/"
],
ユーザーが拡張機能をインストールすると、インストールが完了する前に、ダイアログボックスで必要な権限が通知されますchrome.
Chrome拡張機能には、クロスドメインXHRリクエストを行うときに2つの「モード」があります。
1)ドメインがmanifest.jsonファイルの「permissions」セクションにある場合-リクエストには「Origin」ヘッダーがなく、常に成功します。
2)ドメインが「permissions」にない場合-リクエストに「chrome-extension:// ...」という値の「Origin」ヘッダーが含まれている成功するための有効なAccess-Control-Allow-Originヘッダー。