Beschreibung
Mit der chrome.webRequest
API können Sie Traffic beobachten und analysieren sowie laufende Anfragen abfangen, blockieren oder ändern.
Berechtigungen
webRequest
Manifest
Sie müssen die Berechtigung "webRequest"
im Erweiterungsmanifest deklarieren, um die Web Request API zusammen mit den erforderlichen Hostberechtigungen verwenden zu können. Um eine Anfrage einer Unterressource abzufangen, muss die Erweiterung sowohl auf die angeforderte URL als auch auf ihren Initiator Zugriff haben. Beispiel:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
Ab Chrome 108 können Sie Anmeldedaten für onAuthRequired
-Ereignisse asynchron angeben, wenn Sie die Berechtigungen "webRequest"
und "webRequestAuthProvider"
verwenden.
Lebenszyklus der Anfragen
Die Web Request API definiert eine Reihe von Ereignissen, die dem Lebenszyklus einer Webanfrage folgen. Sie können diese Ereignisse verwenden, um Traffic zu beobachten und zu analysieren. Mit bestimmten synchronen Ereignissen können Sie eine Anfrage abfangen, blockieren oder ändern.
Hier sehen Sie den Ereignislebenszyklus für erfolgreiche Anfragen, gefolgt von Ereignisdefinitionen:
onBeforeRequest
(optional synchron)- Wird ausgelöst, wenn eine Anfrage kurz bevorsteht. Dieses Ereignis wird gesendet, bevor eine TCP-Verbindung hergestellt wird, und kann zum Abbrechen oder Weiterleiten von Anfragen verwendet werden.
onBeforeSendHeaders
(optional synchron)- Wird ausgelöst, wenn eine Anfrage kurz bevorsteht und die ersten Header vorbereitet wurden. Mit dem Ereignis können Erweiterungen Anfrageheader (*) hinzufügen, ändern und löschen. Das Ereignis
onBeforeSendHeaders
wird an alle Abonnenten übergeben, sodass verschiedene Abonnenten versuchen können, die Anfrage zu ändern. Weitere Informationen dazu finden Sie im Abschnitt Implementierungsdetails. Dieses Ereignis kann zum Abbrechen der Anfrage verwendet werden. onSendHeaders
- Wird ausgelöst, nachdem alle Erweiterungen die Anfrageheader ändern konnten und stellt die endgültige (*)-Version dar. Das Ereignis wird ausgelöst, bevor die Header an das Netzwerk gesendet werden. Dieses Ereignis dient zur Information und wird asynchron verarbeitet. Das Ändern oder Abbrechen der Anfrage ist nicht möglich.
onHeadersReceived
(optional synchron)- Wird jedes Mal ausgelöst, wenn ein HTTP(S)-Antwortheader empfangen wird. Aufgrund von Weiterleitungen und Authentifizierungsanfragen kann dies mehrmals pro Anfrage geschehen. Mit diesem Ereignis können Erweiterungen Antwortheader, z. B. eingehende Content-Type-Header, hinzufügen, ändern und löschen. Die Caching-Anweisungen werden verarbeitet, bevor dieses Ereignis ausgelöst wird. Eine Änderung von Headern wie „Cache-Control“ hat also keinen Einfluss auf den Cache des Browsers. Außerdem haben Sie die Möglichkeit, die Anfrage abzubrechen oder weiterzuleiten.
onAuthRequired
(optional synchron)- Wird ausgelöst, wenn für eine Anfrage eine Authentifizierung des Nutzers erforderlich ist Dieses Ereignis kann synchron verarbeitet werden, um Anmeldedaten zur Authentifizierung bereitzustellen. Hinweis: Erweiterungen können ungültige Anmeldedaten zur Verfügung stellen. Achten Sie darauf, nicht in eine Endlosschleife zu gehen, indem Sie wiederholt ungültige Anmeldedaten angeben. Hiermit kann die Anfrage auch abgebrochen werden.
onBeforeRedirect
- Wird ausgelöst, sobald eine Weiterleitung erfolgen soll Eine Weiterleitung kann durch einen HTTP-Antwortcode oder eine Erweiterung ausgelöst werden. Dieses Ereignis dient zur Information und wird asynchron verarbeitet. Sie können die Anfrage nicht ändern oder abbrechen.
onResponseStarted
- Wird ausgelöst, wenn das erste Byte des Antworttexts empfangen wird. Bei HTTP-Anfragen bedeutet dies, dass die Statuszeile und die Antwortheader verfügbar sind. Dieses Ereignis dient der Information und wird asynchron verarbeitet. Sie können die Anfrage weder ändern noch abbrechen.
onCompleted
- Wird ausgelöst, wenn eine Anfrage erfolgreich verarbeitet wurde.
onErrorOccurred
- Wird ausgelöst, wenn eine Anfrage nicht verarbeitet werden konnte.
Die Web Request API sorgt dafür, dass bei jeder Anfrage entweder onCompleted
oder onErrorOccurred
als letztes Ereignis mit einer Ausnahme ausgelöst wird: Wenn eine Anfrage an eine data://
-URL weitergeleitet wird, ist onBeforeRedirect
das letzte gemeldete Ereignis.
* Die Web Request API stellt der Erweiterung eine Abstraktion des Netzwerkstacks bereit. Intern kann eine URL-Anfrage in mehrere HTTP-Anfragen aufgeteilt werden (z. B. um einzelne Bytebereiche aus einer großen Datei abzurufen) oder vom Netzwerkstack verarbeitet werden, ohne mit dem Netzwerk zu kommunizieren. Aus diesem Grund stellt die API nicht die endgültigen HTTP-Header bereit, die an das Netzwerk gesendet werden. Beispielsweise sind alle Header, die sich auf das Caching beziehen, für die Erweiterung nicht sichtbar.
Die folgenden Header werden derzeit für das onBeforeSendHeaders
-Ereignis nicht bereitgestellt. Es kann nicht garantiert werden, dass diese Liste vollständig oder stabil ist.
- Autorisierung
- Cache-Control
- Connection
- Content-Length
- Host
- If-Modified-Since
- If-None-Match
- Wenn-Bereich
- Teildaten
- Pragma
- Proxy-Autorisierung
- Proxy-Verbindung
- Transferverschlüsselung
Ab Chrome 79 wirken sich Änderungen an Anfrageheadern auf CORS-Prüfungen (Cross-Origin Resource Sharing) aus. Wenn geänderte Header für ursprungsübergreifende Anfragen die Kriterien nicht erfüllen, wird ein CORS-Preflight gesendet, um den Server zu fragen, ob solche Header akzeptiert werden können. Wenn Sie Header wirklich so ändern müssen, dass sie gegen das CORS-Protokoll verstoßen, müssen Sie 'extraHeaders'
in opt_extraInfoSpec
angeben. Andererseits können Änderungen an Antwortheadern nicht dazu beitragen, CORS-Prüfungen zu täuschen. Wenn Sie das CORS-Protokoll täuschen müssen, müssen Sie auch 'extraHeaders'
für die Antwortänderungen angeben.
Ab Chrome 79 fängt die webRequest API CORS-Preflight-Anfragen und -Antworten standardmäßig nicht ab. Eine CORS-Preflight für eine Anfrage-URL ist für eine Erweiterung sichtbar, wenn ein Listener mit 'extraHeaders'
in opt_extraInfoSpec
für die Anfrage-URL angegeben ist.
onBeforeRequest
kann auch 'extraHeaders'
aus Chrome 79 abrufen.
Ab Chrome 79 wird der folgende Anfrageheader nicht bereitgestellt und kann nicht ohne die Angabe von 'extraHeaders'
in opt_extraInfoSpec
geändert oder entfernt werden:
- Ursprung
Wenn Sie ab Chrome 72 Antworten ändern müssen, bevor die Cross-Origin Read Blocking (CORB) die Antwort blockieren kann, müssen Sie 'extraHeaders'
in opt_extraInfoSpec
angeben.
Ab Chrome 72 werden die folgenden Anfrageheader nicht bereitgestellt und können nicht ohne 'extraHeaders'
in opt_extraInfoSpec
geändert oder entfernt werden:
- Akzeptiersprache
- Accept-Encoding
- Verwiesen von:
- Cookie
Ab Chrome 72 wird der Set-Cookie
-Antwortheader nicht mehr angegeben und kann nicht ohne 'extraHeaders'
in opt_extraInfoSpec
geändert oder entfernt werden.
Ab Chrome 89 kann der Antwortheader X-Frame-Options
nicht mehr effektiv geändert oder entfernt werden, ohne 'extraHeaders'
in opt_extraInfoSpec
anzugeben.
Die webRequest API stellt nur Anfragen zur Verfügung, für die die Erweiterung aufgrund ihrer Hostberechtigungen eine Leseberechtigung hat. Außerdem sind nur die folgenden Schemas verfügbar: http://
, https://
, ftp://
, file://
, ws://
(seit Chrome 58), wss://
(seit Chrome 58), urn:
(seit Chrome 91) oder chrome-extension://
. Außerdem werden sogar bestimmte Anfragen mit URLs, die eines der oben genannten Schemas verwenden, verborgen. Dazu gehören chrome-extension://other_extension_id
, wobei other_extension_id
nicht die ID der Erweiterung für die Verarbeitung der Anfrage ist, https://www.google.com/chrome
und andere vertrauliche Anfragen, die für den Browser von zentraler Bedeutung sind. Außerdem werden synchrone XMLHttpRequests von Ihrer Erweiterung nicht blockiert, um Event-Handler zu blockieren, um Deadlocks zu verhindern. Beachten Sie, dass bei einigen der unterstützten Schemas die Menge der verfügbaren Ereignisse aufgrund der Beschaffenheit des entsprechenden Protokolls möglicherweise begrenzt ist. Für das „file:“-Schema dürfen beispielsweise nur onBeforeRequest
, onResponseStarted
, onCompleted
und onErrorOccurred
gesendet werden.
Ab Chrome 58 unterstützt die webRequest API das Abfangen der WebSocket-Handshakeanfrage. Da der Handshake über eine HTTP-Upgradeanfrage erfolgt, passt er zum HTTP-orientierten webRequest-Modell. Beachten Sie, dass die API Folgendes nicht abfängt:
- Einzelne Nachrichten, die über eine bestehende WebSocket-Verbindung gesendet wurden.
- WebSocket schließt Verbindung.
Weiterleitungen werden für WebSocket-Anfragen nicht unterstützt.
Ab Chrome 72 kann eine Erweiterung Anfragen nur dann abfangen, wenn sie Hostberechtigungen für die angeforderte URL und für den Anfrageinitiator hat.
Ab Chrome 96 unterstützt die webRequest API das Abfangen von WebTransport über eine HTTP/3-Handshakeanfrage. Da der Handshake über eine HTTP CONNECT-Anfrage erfolgt, passt sein Ablauf in das HTTP-orientierte webRequest-Modell. Hinweis:
- Sobald die Sitzung eingerichtet ist, können Erweiterungen die Sitzung nicht mehr über die webRequest API beobachten oder eingreifen.
- Änderungen an HTTP-Anfrageheadern in
onBeforeSendHeaders
werden ignoriert. - Weiterleitungen und Authentifizierungen werden in WebTransport über HTTP/3 nicht unterstützt.
Konzepte
Wie in den folgenden Abschnitten erläutert, verwenden Ereignisse in der Web Request API Anfrage-IDs. Sie können optional Filter und zusätzliche Informationen angeben, wenn Sie Ereignis-Listener registrieren.
Anfrage-IDs
Jede Anfrage wird durch eine Anfrage-ID identifiziert. Diese ID ist innerhalb einer Browsersitzung und im Kontext einer Erweiterung eindeutig. Sie bleibt während des Lebenszyklus einer Anfrage konstant und kann verwendet werden, um Ereignisse für dieselbe Anfrage abzugleichen. Im Falle einer HTTP-Weiterleitung oder HTTP-Authentifizierung werden einer Webanfrage mehrere HTTP-Anfragen zugeordnet.
Event-Listener registrieren
Um einen Event-Listener für eine Webanfrage zu registrieren, verwenden Sie eine Variante der üblichen addListener()
-Funktion. Zusätzlich zur Angabe einer Callback-Funktion müssen Sie ein Filterargument angeben. Außerdem können Sie ein optionales zusätzliches Info-Argument angeben.
Die drei Argumente für addListener()
der Web Request API haben die folgenden Definitionen:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Hier ein Beispiel für das Warten auf das Ereignis onBeforeRequest
:
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
Bei jedem addListener()
-Aufruf ist als erster Parameter eine obligatorische Callback-Funktion erforderlich. Dieser Callback-Funktion wird ein Wörterbuch mit Informationen zur aktuellen URL-Anfrage übergeben. Die Informationen in diesem Wörterbuch hängen vom spezifischen Ereignistyp sowie vom Inhalt von opt_extraInfoSpec
ab.
Wenn das optionale Array opt_extraInfoSpec
den String 'blocking'
enthält (nur bei bestimmten Ereignissen zulässig), wird die Callback-Funktion synchron verarbeitet. Das bedeutet, dass die Anfrage blockiert wird, bis die Callback-Funktion wiederkehrt. In diesem Fall kann der Callback eine webRequest.BlockingResponse
zurückgeben, die den weiteren Lebenszyklus der Anfrage bestimmt. Je nach Kontext ermöglicht diese Antwort das Abbrechen oder Weiterleiten einer Anfrage (onBeforeRequest
), das Abbrechen oder die Änderung von Headern (onBeforeSendHeaders
, onHeadersReceived
) und das Abbrechen einer Anfrage oder das Angeben von Authentifizierungsdaten (onAuthRequired
).
Wenn das optionale Array opt_extraInfoSpec
stattdessen den String 'asyncBlocking'
enthält (nur für onAuthRequired
zulässig), kann die Erweiterung webRequest.BlockingResponse
asynchron generieren.
Mit dem filter
webRequest.RequestFilter
können Sie die Anfragen einschränken, für die Ereignisse in verschiedenen Dimensionen ausgelöst werden:
- URLs
- URL-Muster wie
*://www.google.com/foo*bar
. - Typen
- Anfragetypen wie
main_frame
(ein Dokument, das für einen Frame auf oberster Ebene geladen wird),sub_frame
(ein Dokument, das für einen eingebetteten Frame geladen wird) undimage
(ein Bild auf einer Website). SiehewebRequest.RequestFilter
. - Tab ID
- Die ID für einen Tab.
- Fenster-ID
- Die Kennung eines Fensters.
Je nach Ereignistyp können Sie in opt_extraInfoSpec
Strings angeben, um zusätzliche Informationen zur Anfrage anzufordern. Sie wird verwendet, um detaillierte Informationen zu den Daten der Anfrage nur bei expliziter Anforderung bereitzustellen.
Implementierungsdetails
Bei der Entwicklung einer Erweiterung, die die Web Request API verwendet, können verschiedene Implementierungsdetails wichtig sein:
web_accessible_resources
Wenn eine Erweiterung webRequest APIs verwendet, um eine Anfrage einer öffentlichen Ressource an eine Ressource umzuleiten, die nicht über das Internet zugänglich ist, wird sie blockiert und führt zu einem Fehler. Dies gilt auch dann, wenn die nicht über das Web zugängliche Ressource der Weiterleitungserweiterung gehört. Um Ressourcen zur Verwendung mit deklarativenWebRequest-APIs zu deklarieren, muss das "web_accessible_resources"
-Array wie hier dokumentiert im Manifest deklariert und ausgefüllt werden.
Konfliktlösung
In der aktuellen Implementierung der Web Request API gilt eine Anfrage als abgebrochen, wenn mindestens eine Erweiterung zum Abbrechen der Anfrage auffordert. Wenn eine Erweiterung eine Anfrage storniert, werden alle Erweiterungen durch ein onErrorOccurred
-Ereignis benachrichtigt. Anfragen können jeweils nur von einer Erweiterung weitergeleitet oder ein Header geändert werden. Wenn mehr als eine Erweiterung versucht, die Anfrage zu ändern, hat die zuletzt installierte Erweiterung Vorrang. Alle anderen werden ignoriert. Eine Erweiterung wird nicht benachrichtigt, wenn ihre Änderungs- oder Weiterleitungsanweisung ignoriert wurde.
Caching
Chrome verwendet zwei Caches: einen Festplatten-Cache und einen sehr schnellen speicherinternen Cache. Die Lebensdauer eines speicherinternen Caches ist an die Lebensdauer eines Renderingprozesses angehängt, die in etwa einem Tab entspricht.
Anfragen, die vom speicherinternen Cache beantwortet werden, sind für die Webanfrage-API nicht sichtbar. Wenn ein Anfrage-Handler sein Verhalten ändert (z. B. das Verhalten, gemäß dem Anfragen blockiert werden), wird dieses geänderte Verhalten bei einer einfachen Seitenaktualisierung möglicherweise nicht berücksichtigt. Damit die Verhaltensänderung durchgeführt wird, rufen Sie handlerBehaviorChanged()
auf, um den speicherinternen Cache zu leeren. Sie sollten es jedoch nicht oft tun. Das Leeren des Cache ist ein sehr teurer Vorgang. Sie müssen handlerBehaviorChanged()
nicht aufrufen, nachdem Sie einen Event-Listener registriert oder seine Registrierung aufgehoben haben.
Zeitstempel
Die Eigenschaft timestamp
von Webanfrageereignissen ist nur intern konsistent.
Wenn Sie ein Ereignis mit einem anderen vergleichen, erhalten Sie den korrekten Offset zwischen ihnen. Ein Vergleich mit der aktuellen Zeit in der Erweiterung (z. B. über (new Date()).getTime()
) kann jedoch zu unerwarteten Ergebnissen führen.
Fehlerbehandlung
Wenn Sie versuchen, ein Ereignis mit ungültigen Argumenten zu registrieren, wird ein JavaScript-Fehler ausgegeben und der Event-Handler wird nicht registriert. Wenn während der Verarbeitung eines Ereignisses ein Fehler ausgegeben wird oder ein Event-Handler eine ungültige Blockierungsantwort zurückgibt, wird eine Fehlermeldung in der Konsole der Erweiterung protokolliert und der Handler für diese Anfrage ignoriert.
Beispiele
Das folgende Beispiel zeigt, wie alle Anfragen an www.evil.com
blockiert werden:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: details.url.indexOf("://www.evil.com/") != -1};
},
{urls: ["<all_urls>"]},
["blocking"]
);
Da diese Funktion einen blockierenden Event-Handler verwendet, sind die Berechtigungen "webRequest"
und "webRequestBlocking"
in der Manifestdatei erforderlich.
Im folgenden Beispiel wird das gleiche Ziel effizienter erreicht, da Anfragen, die nicht auf www.evil.com
ausgerichtet sind, nicht an die Erweiterung weitergeleitet werden müssen:
chrome.webRequest.onBeforeRequest.addListener(
function(details) { return {cancel: true}; },
{urls: ["*://www.evil.com/*"]},
["blocking"]
);
Das folgende Beispiel zeigt, wie der User-Agent-Header aus allen Anfragen gelöscht wird:
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
for (var i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name === 'User-Agent') {
details.requestHeaders.splice(i, 1);
break;
}
}
return {requestHeaders: details.requestHeaders};
},
{urls: ["<all_urls>"]},
["blocking", "requestHeaders"]
);
Wenn Sie die chrome.webRequest
API testen möchten, installieren Sie das webRequest-Beispiel aus dem Repository chrome-extension-sample.
Typen
BlockingResponse
Gibt einen Wert für Event-Handler zurück, auf die das zusätzliche InfoSpec "blocking" angewendet wurde. Ermöglicht dem Event-Handler, Netzwerkanfragen zu ändern.
Attribute
-
authCredentials
Objekt optional
Wird nur als Antwort auf das Ereignis „onAuthRequired“ verwendet. Wenn festgelegt, erfolgt die Anfrage mit den angegebenen Anmeldedaten.
-
Passwort
String
-
Nutzername
String
-
-
Abbrechen
Boolescher Wert optional
Bei „true“ wird die Anfrage abgebrochen. Dadurch wird verhindert, dass die Anfrage gesendet wird. Dies kann als Antwort auf die Ereignisse onBeforeRequest, onBeforeSendHeaders, onHeadersReceived und onAuthRequired verwendet werden.
-
redirectUrl
String optional
Wird nur als Antwort auf die onBeforeRequest- und onHeadersReceived-Ereignisse verwendet. Wenn festgelegt, wird verhindert, dass die ursprüngliche Anfrage gesendet/abgeschlossen wird, und wird stattdessen an die angegebene URL weitergeleitet. Weiterleitungen zu Nicht-HTTP-Schemata wie
data:
sind zulässig. Von einer Weiterleitungsaktion initiierte Weiterleitungen verwenden die ursprüngliche Anfragemethode für die Weiterleitung, mit einer Ausnahme: Wenn die Weiterleitung in der onHeadersReceived-Phase initiiert wird, wird die Weiterleitung mit der GET-Methode ausgeführt. Weiterleitungen von URLs mit dem Schemaws://
undwss://
werden ignoriert. -
requestHeaders
HttpHeaders optional
Wird nur als Antwort auf das Ereignis „onBeforeSendHeaders“ verwendet. Wenn festgelegt, wird die Anfrage stattdessen mit diesen Anfrageheadern gesendet.
-
responseHeaders
HttpHeaders optional
Wird nur als Antwort auf das onHeadersReceived-Ereignis verwendet. Wenn festgelegt, wird davon ausgegangen, dass der Server stattdessen mit diesen Antwortheadern geantwortet hat. Geben Sie nur
responseHeaders
zurück, wenn Sie die Header wirklich ändern möchten, um die Anzahl der Konflikte zu begrenzen. Nur eine Erweiterung kannresponseHeaders
pro Anfrage ändern.
FormDataItem
Enthält Daten, die in Formulardaten übergeben werden. In URL-codierten Formen wird sie als String gespeichert, wenn es sich bei den Daten um einen utf-8-String handelt, andernfalls als ArrayBuffer. Für Formulardaten ist es ArrayBuffer. Wenn Formulardaten das Hochladen einer Datei darstellen, ist es eine Zeichenfolge mit Dateiname, wenn der Dateiname angegeben ist.
Enum
ArrayBuffer
String
HttpHeaders
Ein Array von HTTP-Headern. Jeder Header wird als Wörterbuch dargestellt, das die Schlüssel name
und entweder value
oder binaryValue
enthält.
Typ
Objekt[]
Attribute
-
binaryValue
nummer[] optional
Wert des HTTP-Headers, wenn er nicht durch UTF-8 dargestellt werden kann; gespeichert als einzelne Bytewerte (0...255).
-
name
String
Name des HTTP-Headers.
-
value
String optional
Wert des HTTP-Headers, wenn er durch UTF-8 dargestellt werden kann.
IgnoredActionType
Enum
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Enum
"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.
"asyncBlocking"
Gibt an, dass die Callback-Funktion asynchron verarbeitet wird.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnBeforeRedirectOptions
Enum
"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnBeforeRequestOptions
Enum
"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.
"requestBody"
Gibt an, dass der Anfragetext in das Ereignis aufgenommen werden soll.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnBeforeSendHeadersOptions
Enum
"requestHeaders"
Gibt an, dass der Anfrageheader im Ereignis enthalten sein soll.
"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnCompletedOptions
Enum
"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnErrorOccurredOptions
Wert
"extraHeaders"
OnHeadersReceivedOptions
Enum
"blocking"
Gibt an, dass die Anfrage blockiert wird, bis die Callback-Funktion zurückgegeben wird.
"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnResponseStartedOptions
Enum
"responseHeaders"
Gibt an, dass die Antwortheader im Ereignis enthalten sein sollen.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
OnSendHeadersOptions
Enum
"requestHeaders"
Gibt an, dass der Anfrageheader im Ereignis enthalten sein soll.
"extraHeaders"
Gibt an, dass Header einen Verstoß gegen Cross-Origin Resource Sharing (CORS) darstellen können.
RequestFilter
Ein Objekt, das Filter beschreibt, die auf webRequest-Ereignisse angewendet werden sollen.
Attribute
-
tabId
Nummer optional
-
Typ
ResourceType[] optional
Eine Liste der Anfragetypen. Anfragen, die keinem der Typen entsprechen, werden herausgefiltert.
-
urls
String[]
Eine Liste mit URLs oder URL-Mustern. Anfragen, die keiner der URLs entsprechen, werden herausgefiltert.
-
windowId
Nummer optional
ResourceType
Enum
"main_frame"
Gibt die Ressource als Hauptframe an.
"sub_frame"
Gibt die Ressource als Subframe an.
"stylesheet"
Gibt die Ressource als Stylesheet an.
"script"
Gibt die Ressource als Skript an.
"image"
Gibt die Ressource als Bild an.
"font"
Gibt die Ressource als Schriftart an.
"object"
Gibt die Ressource als Objekt an.
"xmlhttprequest"
Gibt die Ressource als XMLHttpRequest an.
"ping"
Gibt die Ressource als Ping an.
"csp_report"
Gibt die Ressource als Bericht zur Content Security Policy (CSP) an.
"media"
Gibt die Ressource als Medienobjekt an.
"websocket"
Gibt die Ressource als WebSocket an.
"webbundle"
Gibt die Ressource als WebBundle an.
"other"
Gibt die Ressource als Typ an, der nicht unter den aufgeführten Typen enthalten ist.
UploadData
Enthält Daten, die in einer URL-Anfrage hochgeladen wurden.
Attribute
-
Byte
Beliebig optional
Ein ArrayBuffer mit einer Kopie der Daten.
-
Datei
String optional
Ein String mit dem Pfad und Namen der Datei.
Attribute
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
Die maximale Häufigkeit, mit der handlerBehaviorChanged
pro kontinuierlichem Intervall von 10 Minuten aufgerufen werden kann. handlerBehaviorChanged
ist ein teurer Funktionsaufruf, der nicht oft aufgerufen werden sollte.
Wert
20
Methoden
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
)
Muss aufgerufen werden, wenn sich das Verhalten der webRequest-Handler geändert hat, um eine falsche Verarbeitung aufgrund von Caching zu verhindern. Dieser Funktionsaufruf ist teuer. Rufen Sie nicht so oft an.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Promise<void>
Chrome 116 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
Veranstaltungen
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
Wird ausgelöst, wenn die von einer Erweiterung vorgeschlagene Änderung an einer Netzwerkanfrage ignoriert wird. Das kann bei Konflikten mit anderen Erweiterungen der Fall sein.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
Aktion
Die vorgeschlagene Aktion, die ignoriert wurde.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
-
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
Wird ausgelöst, wenn ein Authentifizierungsfehler empfangen wird Der Listener hat drei Möglichkeiten: Er kann Anmeldedaten zur Authentifizierung angeben, die Anfrage abbrechen und die Fehlerseite anzeigen oder er kann bei der Identitätsbestätigung keine Aktion durchführen. Wenn falsche Anmeldedaten angegeben werden, kann dieser Vorgang für dieselbe Anfrage mehrmals aufgerufen werden. Hinweis: Im extraInfoSpec
-Parameter darf nur der Modus 'blocking'
oder 'asyncBlocking'
angegeben werden.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object, asyncCallback?: function) => BlockingResponse | undefined
-
Details
Objekt
-
Herausforderer
Objekt
Der Server, der eine Authentifizierung anfordert.
-
Gastgeber
String
-
Port
Zahl
-
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
isProxy
boolean
„True“ für Proxy-Authenticate, „false“ für WWW-Authenticate.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
Bereich
String optional
Der vom Server bereitgestellte Authentifizierungsbereich, falls vorhanden.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.
-
Schema
String
Das Authentifizierungsschema, z.B. Basic oder Digest.
-
statusCode
Zahl
Chrome 43 und höherVom Server zurückgegebener Standard-HTTP-Statuscode.
-
statusLine
String
HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
asyncCallback
Funktion optional
Chrome 58 und höherDer Parameter
asyncCallback
sieht so aus:(response: BlockingResponse) => void
-
Antwort
-
-
Gibt zurück
BlockingResponse | Nicht definiert
Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
-
Filter
-
extraInfoSpec
OnAuthRequiredOptions[] optional
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
Wird ausgelöst, wenn eine vom Server initiierte Weiterleitung stattfindet
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
ip
String optional
Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
redirectUrl
String
Die neue URL.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die mit dieser Weiterleitung empfangen wurden.
-
statusCode
Zahl
Vom Server zurückgegebener Standard-HTTP-Statuscode.
-
statusLine
String
HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
-
Filter
-
extraInfoSpec
OnBeforeRedirectOptions[] optional
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
Wird ausgelöst, wenn eine Anfrage kurz bevorsteht.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => BlockingResponse | undefined
-
Details
Objekt
-
documentId
String optional
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycle
extensionTypes.DocumentLifecycle optional
Chrome 106 oder höherDer Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameType
extensionTypes.FrameType optional
Chrome 106 oder höherDer Frame-Typ, in dem die Anfrage aufgetreten ist.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestBody
Objekt optional
Enthält die HTTP-Anfragetextdaten. Wird nur angegeben, wenn zusätzlicheInfoSpec „requestBody“ enthält.
-
error
String optional
Fehler beim Abrufen von Anfragetextdaten.
-
formData
Objekt optional
Wenn die Anfragemethode POST ist und der Text aus einer Sequenz von in UTF8 codierten Schlüssel/Wert-Paaren besteht, die entweder als multipart/form-data oder application/x-www-form-urlEncrypt codiert sind, ist dieses Wörterbuch vorhanden und enthält für jeden Schlüssel die Liste aller Werte für den jeweiligen Schlüssel. Falls die Daten einen anderen Medientyp haben oder falsch formatiert sind, ist das Wörterbuch nicht vorhanden. Ein Beispielwert dieses Wörterbuchs ist {'key': ['value1', 'value2']}.
-
Roh
UploadData[] optional
Wenn die Anfragemethode PUT oder POST lautet und der Textkörper noch nicht in formData geparst wurde, sind die nicht geparsten Elemente des Anfragetexts in diesem Array enthalten.
-
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
Gibt zurück
BlockingResponse | Nicht definiert
Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
-
Filter
-
extraInfoSpec
OnBeforeRequestOptions[] optional
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
Wird vor dem Senden einer HTTP-Anfrage ausgelöst, sobald die Anfrageheader verfügbar sind Dieser Fehler kann auftreten, nachdem eine TCP-Verbindung zum Server hergestellt wurde, aber bevor HTTP-Daten gesendet werden.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => BlockingResponse | undefined
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestHeaders
HttpHeaders optional
Die HTTP-Anfrageheader, die mit dieser Anfrage gesendet werden.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
Gibt zurück
BlockingResponse | Nicht definiert
Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
-
Filter
-
extraInfoSpec
OnBeforeSendHeadersOptions[] optional
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
Wird ausgelöst, wenn eine Anfrage abgeschlossen ist
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
ip
String optional
Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.
-
statusCode
Zahl
Vom Server zurückgegebener Standard-HTTP-Statuscode.
-
statusLine
String
HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
-
Filter
-
extraInfoSpec
OnCompletedOptions[] optional
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Wird ausgelöst, wenn ein Fehler auftritt
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt. Dieser Wert ist nicht vorhanden, wenn die Anfrage die Navigation in einem Frame ist.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
error
String
Die Fehlerbeschreibung. Dieser String ist nicht abwärtskompatibel zwischen Releases. Sie dürfen den Inhalt nicht parsen und darauf reagieren.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
ip
String optional
Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
-
Filter
-
extraInfoSpec
OnErrorOccurredOptions[] optional
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
Wird ausgelöst, wenn die HTTP-Antwortheader einer Anfrage empfangen wurden
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => BlockingResponse | undefined
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.
-
statusCode
Zahl
Chrome 43 und höherVom Server zurückgegebener Standard-HTTP-Statuscode.
-
statusLine
String
HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile).
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
Gibt zurück
BlockingResponse | Nicht definiert
Wenn im Parameter "extraInfoSpec" "blocking" angegeben ist, sollte der Ereignis-Listener ein Objekt dieses Typs zurückgeben.
-
-
Filter
-
extraInfoSpec
OnHeadersReceivedOptions[] optional
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
Wird ausgelöst, wenn das erste Byte des Antworttexts empfangen wird. Bei HTTP-Anfragen bedeutet dies, dass die Statuszeile und die Antwortheader verfügbar sind.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
fromCache
boolean
Gibt an, ob diese Antwort aus dem Festplatten-Cache abgerufen wurde.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
ip
String optional
Die IP-Adresse des Servers, an die die Anfrage tatsächlich gesendet wurde. Beachten Sie, dass es sich um eine literale IPv6-Adresse handeln kann.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
responseHeaders
HttpHeaders optional
Die HTTP-Antwortheader, die mit dieser Antwort empfangen wurden.
-
statusCode
Zahl
Vom Server zurückgegebener Standard-HTTP-Statuscode.
-
statusLine
String
HTTP-Statuszeile der Antwort oder der String „HTTP/0.9 200 OK“ für HTTP/0.9-Antworten (d.h. Antworten ohne Statuszeile) oder ein leerer String, wenn keine Header vorhanden sind.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
-
Filter
-
extraInfoSpec
OnResponseStartedOptions[] optional
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
Wird ausgelöst, kurz bevor eine Anfrage an den Server gesendet wird (Änderungen an vorherigen onBeforeSendHeaders-Callbacks sind zu dem Zeitpunkt sichtbar, zu dem onSendHeaders ausgelöst wird).
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
-
documentId
String
Chrome 106 oder höherDie UUID des Dokuments, das die Anfrage stellt.
-
documentLifecycleChrome 106 oder höher
Der Lebenszyklus des Dokuments.
-
frameId
Zahl
Der Wert 0 gibt an, dass die Anfrage im Hauptframe erfolgt; ein positiver Wert gibt die ID eines Subframes an, in dem die Anfrage erfolgt. Wenn das Dokument eines (Sub-)Frames geladen wird (
type
istmain_frame
odersub_frame
), gibtframeId
die ID dieses Frames an, nicht die ID des äußeren Frames. Frame-IDs sind innerhalb eines Tabs eindeutig. -
frameTypeChrome 106 oder höher
Der Frame-Typ, in dem die Anfrage aufgetreten ist.
-
Initiator
String optional
Chrome 63 und höherDer Ursprung, an dem die Anfrage initiiert wurde. Dies ändert sich durch Weiterleitungen nicht. Ist dies ein intransparenter Ursprung, wird der String 'null' verwendet.
-
method
String
Standard-HTTP-Methode.
-
parentDocumentId
String optional
Chrome 106 oder höherDie UUID des übergeordneten Dokuments, das diesem Frame gehört. Dieser Parameter wird nicht festgelegt, wenn kein übergeordnetes Element vorhanden ist.
-
parentFrameId
Zahl
ID des Frames, der den Frame umschließt, von dem die Anfrage gesendet wurde. Wird auf -1 gesetzt, wenn kein übergeordneter Frame vorhanden ist.
-
requestHeaders
HttpHeaders optional
Die HTTP-Anfrageheader, die mit dieser Anfrage gesendet wurden.
-
requestId
String
Die ID der Anfrage. Anfrage-IDs sind innerhalb einer Browsersitzung eindeutig. So konnten sie verwendet werden, um verschiedene Ereignisse derselben Anfrage zuzuordnen.
-
tabId
Zahl
Die ID des Tabs, in dem die Anfrage ausgeführt wird. Legen Sie diesen Wert auf -1 fest, wenn die Anfrage sich nicht auf einen Tab bezieht.
-
timeStamp
Zahl
Die Zeit in Millisekunden seit der Epoche, zu der dieses Signal ausgelöst wird.
-
Typ
Wie die angeforderte Ressource verwendet wird.
-
url
String
-
-
-
Filter
-
extraInfoSpec
OnSendHeadersOptions[] optional