web-dev-qa-db-ja.com

Access-Control-Allow-Origin on chrome extension

自分のサーバーからデータをプルする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: *');を送信すると、修正されますか?

13
Raimonds

https://developer.chrome.com/extensions/xhr

そのドキュメントを読み、権限が正しく設定されていることを確認してください。

8
Alasdair

クロスオリジンリソースシェアリング(CORS)を実行しようとしています。悪いニュースは、仲介者としてのサーバーがなければ、通常のWebページでこれを行う方法がないということです。良いニュースは、chrome拡張子で、必要なURLにアクセスするためのアクセス許可を要求できることです。manifest.jsonファイルにこのようなものを入れるだけです。

サイトへの接続を許可します。

 "permissions": [
    "http://*.radionsm.lv/"
  ],

任意のサイトへの接続を許可します。

 "permissions": [
    "http://*/"
  ],

ユーザーが拡張機能をインストールすると、インストールが完了する前に、ダイアログボックスで必要な権限が通知されますchrome.

32
Eamonn

Chrome拡張機能には、クロスドメインXHRリクエストを行うときに2つの「モード」があります。

1)ドメインがmanifest.jsonファイルの「permissions」セクションにある場合-リクエストには「Origin」ヘッダーがなく、常に成功します。

2)ドメインが「permissions」にない場合-リクエストに「chrome-extension:// ...」という値の「Origin」ヘッダーが含まれている成功するための有効なAccess-Control-Allow-Originヘッダー。

21
monsur