Ich arbeite an einer Chrome-Erweiterung, die eine HTTP-Anfrage sendet.
Wie sende ich es an www.example.com
mit dem Parameter par
mit Wert 0
?
https://www.example.com?par=0
(Der Server liest den Parameter par
und tut etwas)
Ich habe diesen Artikel gefunden, in dem ich darüber rede Cross-Origin XMLHttpRequestaber ich weiß nicht, wie mir ihr Beispiel helfen könnte.
Zuerst müssen Sie Ihre bearbeiten manifest.json
und fügen Sie die Berechtigung für hinzu www.example.com
:
-
Für das Neue Manifest V3verwenden Sie die host_permissions
Feld:
{
"manifest_version": 3,
...
"host_permissions": [
"https://www.example.com/*"
],
...
}
-
Wenn Sie noch das alte Manifest V2 verwenden, verwenden Sie das permissions
Feld:
{
"manifest_version": 2,
...
"permissions": [
"https://www.example.com/*"
],
...
}
Dann können Sie auf Ihrer Hintergrundseite (oder anderswo) Folgendes tun:
fetch('http://www.example.com?par=0').then(r => r.text()).then(result => {
// Result now contains the response text, do what you want...
})
Siehe auch MDN-Dokument für fetch()
.
Veraltete Version mit 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();
NOTIZ die Warnung oben im Verwandten Dokumentationsseite:
In Manifest V3, XMLHttpRequest
wird in Hintergrundseiten (bereitgestellt von Service Workern) nicht unterstützt. Bitte erwägen Sie die Verwendung eines modernen Ersatzes. fetch()