Chrome拡張機能からHTTPリクエストを送信するにはどうすればいいですか? 質問する

Chrome拡張機能からHTTPリクエストを送信するにはどうすればいいですか? 質問する

私は HTTP リクエストを送信する Chrome 拡張機能に取り組んでいます。

値付きのwww.example.comパラメータを使用して送信するにはどうすればよいですか?par0

https://www.example.com?par=0

(サーバーはパラメータを読み取っparて何かを実行します)

私はこの記事を見つけました。クロスオリジン XMLHttpRequestしかし、彼らの例が私にどう役立つのかは分かりません。

ベストアンサー1

まず、 を編集してmanifest.json、次の権限を追加する必要がありますwww.example.com:

  • 新しいマニフェスト V3次のフィールドを使用しますhost_permissions:

    {
        "manifest_version": 3,
        ...
        "host_permissions": [
            "https://www.example.com/*"
        ],
        ...
    }
    
  • 古い Manifest V2 をまだ使用している場合は、次のpermissionsフィールドを使用します。

    {
        "manifest_version": 2,
        ...
        "permissions": [
            "https://www.example.com/*"
        ],
        ...
    }
    

次に、バックグラウンド ページ (または他の場所) で次の操作を実行します。

fetch('http://www.example.com?par=0').then(r => r.text()).then(result => {
    // Result now contains the response text, do what you want...
})

参照MDNドキュメントfetch()


XMLHttpRequest(ES5)を使用した非推奨バージョン:

function callback() {
    if (xhr.readyState === XMLHttpRequest.DONE) {
        if (xhr.status === 200) {
            result = xhr.responseText;
            // ...
        }
    }
};

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.example.com?par=0", true);
xhr.onreadystatechange = callback;
xhr.send();

注記相対的な上部の警告ドキュメントページ:

Manifest V3では、XMLHttpRequestバックグラウンドページ(Service Workersによって提供)ではサポートされていません。最新の代替品の使用を検討してください。fetch()

おすすめ記事