# Fehlerbehebung

> Die häufigsten Fehler bei der Integration des Clients – wenn der Inline-Checkout auf ein Pop-up zurückfällt, Fenster blockiert werden, Container fehlen oder Konsolenwarnungen auftreten.

Der Client protokolliert alles, was er meldet, in der Browserkonsole mit dem Präfix `[Entase API]`. Öffnen Sie zuerst die Konsole.

## Der Checkout wird als Pop-up statt als Bereich geöffnet

Die üblichen Ursachen, in der Reihenfolge, in der sie geprüft werden sollten:

1. **Die Domain ist keine vertrauenswürdige Origin.** Fügen Sie sie unter Einstellungen → Integrationen hinzu und achten Sie darauf, dass das `www.`-Präfix mit dem Ihrer tatsächlich ausgelieferten Website übereinstimmt – siehe [Integrationen und Checkout-Anpassung](/organizers/settings/integrations-and-checkout-customization.md).
2. **Die Seite wird nicht über HTTPS bereitgestellt.** Inline-Checkout wird auf einer unsicheren Seite niemals verwendet.
3. **Kein veröffentlichbarer Schlüssel.** Ohne `pk` kann der Client nicht prüfen, ob Inline-Checkout erlaubt ist, und verwendet daher weiterhin ein Pop-up.
4. **`book()` wurde zu früh ausgeführt.** Die Berechtigungsprüfung erfolgt asynchron, und bis sie antwortet, ist der Modus Pop-up. Ein beim Laden der Seite automatisch geöffneter Checkout kann ihr zuvorkommen – siehe [Checkout-Modi](/developers/js-client/checkout-modes.md).
5. **`connect-src` wird durch Ihre Content Security Policy blockiert**, sodass die Prüfung nie abgeschlossen wird. Die Konsole zeigt die blockierte Anfrage an.

`entase.getCheckoutMode()` gibt den aufgelösten Modus zurück und ist der schnellste Weg, Konfigurationsprobleme von Timing-Problemen zu unterscheiden.

## „Pane-Checkout-Modus für localhost aktiviert“

Während der Entwicklung erwartet. Der Client nimmt für `localhost` und `127.0.0.1` den Pane-Modus an, damit Sie mit dem Inline-Layout entwickeln können, und warnt, weil diese Annahme nichts über die Produktion aussagt. Fügen Sie Ihre tatsächliche Domain zu den vertrauenswürdigen Origins hinzu, bevor Sie live gehen.

## Das Pop-up wird blockiert

Browser erlauben das Öffnen eines Fensters nur während einer Nutzerinteraktion. Rufen Sie `book()` synchron innerhalb des Click-Handlers auf, nicht nach einem `await`, einem `fetch` oder einem `setTimeout`. Siehe [Checkout-Modi](/developers/js-client/checkout-modes.md).

## Der Bereich wird leer geöffnet

Das Checkout-iframe wurde blockiert. Erlauben Sie `https://www.entase.com` in der `frame-src`-Direktive Ihrer Content Security Policy – siehe [Installation des Clients](/developers/js-client/installing-the-client.md).

## „Entase ist nicht definiert“

Das Skript war noch nicht vollständig geladen, als Ihr Code ausgeführt wurde. Dies passiert, wenn `client.js` mit `async` oder `defer` geladen wird oder nach dem Skript platziert ist, das es verwendet. Warten Sie auf das Ereignis `entase:ready` – siehe [Installation des Clients](/developers/js-client/installing-the-client.md).

## „Versuch, ein Event zu buchen, nachdem der Client zerstört wurde“

`destroy()` wurde für die Instanz aufgerufen und sie kann nicht mehr verwendet werden. In einer Single-Page-Anwendung bedeutet dies normalerweise, dass eine Komponente ihren Client abgebaut hat, während eine gemeinsame Referenz bestehen blieb. Erstellen Sie für die neue Ansicht eine neue Instanz.

## „Initialisierung des Entase-Frames fehlgeschlagen. Container nicht gefunden.“

Nur Embed-Widget. Der `obj`-Code in der Konfiguration stimmt mit keinem Element auf der Seite überein. Die ID des Containers muss aus `entase_` gefolgt vom gleichen Code bestehen, und er muss im DOM vorhanden sein, bevor das Widget initialisiert wird – prüfen Sie auf einen Tippfehler oder darauf, ob ein Container erst später durch Ihre eigenen Skripte gerendert wird.

## Nur der letzte Event-Listener wird ausgeführt

`on()` speichert einen Callback pro Event-Namen, und die Registrierung eines zweiten ersetzt den ersten. Registrieren Sie ihn einmal und verteilen Sie innerhalb dieses Callbacks weiter – siehe [Events](/developers/js-client/events.md).

## Das Pop-up wird auf dem falschen Bildschirm geöffnet

Der Mittelpunkt wird beim Erstellen der Instanz berechnet und nicht aktualisiert, wenn der Besucher das Browserfenster verschiebt. Berechnen Sie ihn vor dem Buchen mit `setTopWindowCenter()` neu – siehe [Methodenreferenz](/developers/js-client/methods.md).

## Tracking-Parameter fehlen in Bestellungen

Der eigenständige Client liest die URL Ihrer Seite nicht. Übergeben Sie die Parameter selbst an `tprm` – siehe [Tracking und Einwilligung](/developers/js-client/tracking-and-consent.md). Beachten Sie, dass `setTracking()` das gesamte Objekt ersetzt, statt es damit zusammenzuführen; ein späterer Aufruf kann daher unbemerkt frühere Parameter verwerfen.
