1. Web
  2. Web-APIs
  3. CookieStore
  4. delete()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CookieStore: delete() Methode

Baseline 2025 *
Neu verfügbar

Seit June 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.

Want more support for this feature? Tell us why.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Service Workers verfügbar.

Die delete() Methode des CookieStore Interfaces löscht ein Cookie, das mit dem angegebenen name oder options Objekt übereinstimmt. Die Methode lässt das Cookie ablaufen, indem sie dessen Datum auf ein vergangenes ändert.

Beachten Sie, dass es keinen Fehler gibt, wenn ein Cookie nicht gefunden werden kann: Das zurückgegebene Promise wird erfüllt, wenn das gefundene Cookie gelöscht wird oder wenn kein Cookie gefunden wird.

Syntax

js
delete(name)
delete(options)

Parameter

Diese Methode erfordert eines der folgenden:

name Optional

Ein String mit dem Namen eines Cookies.

Oder

options Optional

Ein Objekt, das Folgendes enthält:

name

Ein String mit dem Namen eines Cookies.

domain Optional

Ein String mit der Domain eines Cookies. Standard ist null.

path Optional

Ein String, der einen Pfad enthält. Standard ist /.

partitioned Optional

Ein Boolean-Wert, der standardmäßig auf false gesetzt ist. Wenn er auf true gesetzt wird, gibt er an, dass das zu löschende Cookie ein partitioniertes Cookie sein wird. Weitere Informationen finden Sie unter Cookies mit unabhängigem partitionierten Zustand (CHIPS).

Rückgabewert

Ein Promise, das mit undefined aufgelöst wird, wenn der Löschvorgang abgeschlossen ist oder kein Cookie gefunden wird.

Ausnahmen

SecurityError DOMException

Wird geworfen, wenn der Ursprung nicht zu einer URL serialisiert werden kann.

TypeError

Wird geworfen, wenn ein Cookie, das mit einem gegebenen name oder options übereinstimmt, nicht gelöscht werden kann.

Beispiele

Löschen eines benannten Cookies

Dieses Beispiel zeigt, wie ein Cookie gelöscht werden kann, indem sein Name an die delete() Methode übergeben wird.

Dies funktioniert, wenn das zu löschende Cookie mit dem Cookie-Namen und den Standardwerten der oben genannten options übereinstimmt. Dies ist der Fall, wenn das Cookie mit nur einem Namen und einem Wert set() wurde, jedoch möglicherweise nicht, wenn das Cookie mit Optionen oder mit Document.cookie erstellt wurde.

Der Code definiert zunächst setTestCookies(), das einige Test-Cookies erstellt und ihre Namen protokolliert.

js
async function setTestCookies() {
 // Set two cookies
 try {
 await cookieStore.set("cookie1", "cookie1-value");
 } catch (error) {
 console.log(`Error setting cookie1: ${error}`);
 }
 try {
 await cookieStore.set("cookie2", "cookie2-value");
 } catch (error) {
 console.log(`Error setting cookie2: ${error}`);
 }
 // Log cookie names
 const cookieNames = (await cookieStore.getAll())
 .map((cookie) => cookie.name)
 .join(" ");
 console.log(`Initial cookies: ${cookieNames}`);
}

Die Methode cookieTest() ruft setTestCookies() auf. Sie löscht dann "cookie1", das wir gerade erstellt haben, und listet alle Cookie-Namen erneut auf.

js
async function cookieTest() {
 // Create our test cookies
 await setTestCookies();
 // Delete cookie1
 try {
 await cookieStore.delete("cookie1");
 } catch (error) {
 console.log(`Error deleting cookie1: ${error}`);
 }
 // Log cookie names again (to show cookie1 deleted)
 const cookieNames = (await cookieStore.getAll())
 .map((cookie) => cookie.name)
 .join(" ");
 console.log(
 `Cookies remaining after attempting to delete cookie1: ${cookieNames}`,
 );
}
cookieTest();

Wenn ausgeführt, sollte das Konsolenprotokoll zunächst zeigen, dass sowohl cookie1 als auch cookie2 vorhanden sind, aber cookie1 nach dem Löschen nicht mehr aufgeführt wird.

Löschen eines Cookies mit Optionen

Dieses Beispiel ist fast identisch mit dem vorherigen, zeigt jedoch, dass die Optionen mit denen des zu löschenden Cookies übereinstimmen müssen.

Der Code definiert zunächst setTestCookies(). Dies erstellt zwei Cookies mit der partitioned Eigenschaft, die auf true gesetzt ist, und protokolliert deren Namen.

js
async function setTestCookies() {
 // Set two cookies
 try {
 await cookieStore.set({
 name: "cookie1",
 value: `cookie1-value`,
 partitioned: true,
 });
 } catch (error) {
 console.log(`Error setting cookie1: ${error}`);
 }
 try {
 await cookieStore.set({
 name: "cookie2",
 value: `cookie2-value`,
 partitioned: true,
 });
 } catch (error) {
 console.log(`Error setting cookie2: ${error}`);
 }
 // Log cookie names
 const cookieNames = (await cookieStore.getAll())
 .map((cookie) => cookie.name)
 .join(" ");
 console.log(`Initial cookies: ${cookieNames}`);
}

Die Methode cookieTest() ruft setTestCookies() auf. Sie versucht dann, die Cookies mit dem Namen "cookie1" zu löschen, indem sie dessen Namen angibt, und "cookie2", indem sie dessen Namen und partitioned: true angibt. Die Methode listet dann die Cookie-Namen erneut auf.

js
async function cookieTest() {
 // Create our test cookies
 await setTestCookies();
 // Delete cookie1 specifying just the name
 try {
 await cookieStore.delete("cookie1");
 } catch (error) {
 console.log(`Error deleting cookie1: ${error}`);
 }
 // Delete cookie2, setting partitioned to true
 try {
 await cookieStore.delete({
 name: "cookie2",
 partitioned: true,
 });
 } catch (error) {
 console.log(`Error deleting cookie2: ${error}`);
 }
 // Log cookie names again (to show cookie1 deleted)
 cookieNames = (await cookieStore.getAll())
 .map((cookie) => cookie.name)
 .join(" ");
 console.log(
 `Cookies remaining after attempted deletions (cookie2 should be deleted): ${cookieNames}`,
 );
}
cookieTest();

Wenn ausgeführt, sollte das Konsolenprotokoll zeigen, dass sowohl "cookie1" als auch "cookie2" anfangs vorhanden sind, aber "cookie2" danach nicht mehr aufgeführt wird. Das Cookie mit dem Namen "cookie1" ist immer noch vorhanden, da es nicht mit den in der delete()-Aufruf angegebenen Cookies übereinstimmt.

Hinweis: Das Löschen schlägt stillschweigend fehl, wenn kein Cookie übereinstimmt.

Löschen von Cookies, die mit document.cookies erstellt wurden

Das Löschen eines Cookies, das mit document.cookie erstellt wurde, hat dieselben Anforderungen wie das Löschen eines Cookies, das mit CookieStore.set() erstellt wurde: Das Cookie muss entweder den übergebenen options oder dem name und den Standardoptionen entsprechen.

Hinweis: Mit set() erstellte Cookies haben immer einen Standardpfad von /, während mit document.cookie erstellte Cookies einen Standardpfad gleich dem Pfad des Dokuments haben, in dem sie erstellt werden. Daher können Sie beim Löschen von Cookies, die mit document.cookie erstellt wurden, nicht davon ausgehen, dass sie den Pfad / haben (es sei denn, er wurde ausdrücklich so festgelegt) und daher zu den Standardoptionen für das Löschen passen.

Der folgende Code verwendet document.cookie, um Cookies mit den Namen "doc_cookie1" und "doc_cookie2" zu erstellen, mit den Pfaden /some_path bzw. /, und protokolliert dann beide Cookies. Der Code löscht dann beide Cookies, ohne eine path-Übereinstimmungsoption anzugeben, und listet die Cookies erneut auf.

js
async function cookieTest() {
 // Create doc_cookie1 with path /some_path
 document.cookie =
 "doc_cookie1=doc_cookie1_name; SameSite=None; Secure; max-age=10; path='/some_path'";
 // Create doc_cookie2 with path / (the CookieStore.set() default)
 document.cookie =
 "doc_cookie2=doc_cookie2_name; SameSite=None; Secure; max-age=10; path=/";
 // Log cookie names
 let cookieNames = (await cookieStore.getAll())
 .map((cookie) => cookie.name)
 .join(" ");
 console.log(`Initial cookies: ${cookieNames}`);
 // Delete doc_cookie1 (should fail)
 try {
 await cookieStore.delete("doc_cookie1");
 } catch (error) {
 console.log(`Error deleting doc_cookie1: ${error}`);
 }
 // Delete doc_cookie2 (should succeed)
 try {
 await cookieStore.delete("doc_cookie2");
 } catch (error) {
 console.log(`Error deleting cookie2: ${error}`);
 }
 // Log cookie names again (to show cookie1 deleted)
 cookieNames = (await cookieStore.getAll())
 .map((cookie) => cookie.name)
 .join(" ");
 console.log(
 `Cookies remaining after attempted deletions (doc_cookie2 should be deleted): ${cookieNames}`,
 );
}
cookieTest();

Wenn ausgeführt, sollte das erste Protokoll zeigen, dass beide Cookies vorhanden sind. Das zweite Protokoll sollte "doc_cookie2" nicht enthalten, da es gefunden und gelöscht worden sein sollte. Es sollte "doc_cookie1" enthalten, weil /some_path nicht mit dem Standardlöschpfad (/) übereinstimmen wird.

Spezifikationen

Spezifikation
Cookie Store API
# dom-cookiestore-delete

Browser-Kompatibilität

Help improve MDN

Erfahren Sie, wie Sie beitragen können Diese Seite wurde automatisch aus dem Englischen übersetzt.

AltStyle によって変換されたページ (->オリジナル) /