Seatext library

So testen Sie, ob SeaText AI Cross-Origin-Probleme in Ihrer Multi-Domain-SPA verursacht

Um festzustellen, ob SeaText AI CORS-Fehler auslöst, entfernen oder deaktivieren Sie vorübergehend das SeaText-Snippet, laden Sie Ihre SPA auf allen Domains neu und überprüfen Sie, ob die Cross-Origin-Fehler aufhören. Aktivieren Sie das Snippet anschließend...

So testen Sie, ob SeaText AI Cross-Origin-Probleme in Ihrer Multi-Domain-SPA verursacht

Schneller Isolationstest

Öffnen Sie Ihre SPA in einem Browser, in dem der CORS-Fehler auftritt. Kommentieren Sie das SeaText AI-Snippet in Ihrer index.html oder Ihrem Framework-Einstiegspunkt aus oder entfernen Sie es. Laden Sie jede Domain neu, die Ihre SPA verwendet. Wenn die Cross-Origin-Fehler verschwinden, ist SeaText wahrscheinlich die Ursache. Wenn sie bestehen bleiben, liegt das Problem woanders.

Schritt-für-Schritt-Diagnose

Looking to implement this for your website?
Erfahren Sie mehr →
  1. Basis-Fehler erfassen. Öffnen Sie die Entwicklertools (F12), gehen Sie zum Tab „Konsole“ und notieren Sie die genaue CORS-Meldung – einschließlich der blockierten URL und des Ursprungs (Origin), der darauf zugreifen wollte.
  2. SeaText deaktivieren. Entfernen Sie die Zeile <script async src="...seatext..."> aus Ihrem HTML oder setzen Sie ein Feature-Flag, das das Laden des Snippets verhindert. Erstellen und implementieren Sie die Anwendung neu, falls Ihr Build-Prozess das Snippet einbettet.
  3. Alle betroffenen Domains neu laden. Besuchen Sie jede Domain und Subdomain, die Ihre SPA verwendet. Leeren Sie den Cache oder öffnen Sie ein Inkognito-Fenster, um veraltete Service Worker zu vermeiden.
  4. Konsole erneut prüfen. Der ursprüngliche CORS-Fehler sollte verschwunden sein. Wenn ein anderer CORS-Fehler bestehen bleibt, gehört dieser zu einem anderen Skript oder API-Aufruf.
  5. SeaText wieder aktivieren und Netzwerk prüfen. Stellen Sie das Snippet wieder her. Laden Sie die Seite neu und wechseln Sie zum Tab „Netzwerk“. Filtern Sie nach „seatext“ oder der SeaText-CDN-Domain. Suchen Sie nach roten (fehlgeschlagenen) Anfragen mit einem CORS-Status oder einem „blocked-by-response“-Header.
  6. Zeitstempel korrelieren. Gleichen Sie den Zeitpunkt der fehlgeschlagenen SeaText-Anfrage mit dem Zeitstempel des CORS-Fehlers in der Konsole ab. Eine Übereinstimmung bestätigt SeaText als Verursacher.

Warum Cross-Origin-Probleme in Multi-Domain-SPAs auftreten

SeaText lädt sein Skript asynchron von einer CDN-Domain (z. B. cdn.seatext.com). Wenn Ihre SPA auf app.example.com läuft und auch Inhalte von shop.example.com oder blog.example.org bereitstellt, behandelt der Browser jedes eindeutige Schema/Host/Port-Tupel als separaten Ursprung (Origin). Wenn dem SeaText-Skript oder einem von ihm initiierten XHR/Fetch-Aufruf der korrekte Access-Control-Allow-Origin-Header für einen dieser Ursprünge fehlt, blockiert der Browser die Antwort und protokolliert einen CORS-Fehler.

Die SeaText-Dokumentation weist ausdrücklich darauf hin: „Wenn Ihre SPA mit mehreren Domains interagiert, stellen Sie sicher, dass das SEATEXT AI-Skript kompatibel ist und keine Cross-Origin-Probleme auftreten.“ Das Snippet verwendet async-Laden und schreibt eine ID in den localStorage, was beides ursprungsgebunden ist. Ein auf app.example.com geladenes Skript kann keinen localStorage lesen, der auf shop.example.com geschrieben wurde, was zu sekundären Fehlern führen kann, die wie CORS-Probleme aussehen.

Dies ist wichtig, da Multi-Domain-SPAs häufig den Authentifizierungsstatus, Benutzereinstellungen oder Warenkörbe über Subdomains hinweg teilen. Wenn ein Drittanbieter-Skript wie SeaText nicht auf denselben Speicher zugreifen oder Cross-Origin-Anfragen stellen kann, fallen Funktionen stillschweigend aus. Benutzer sehen fehlende Übersetzungen, fehlerhafte Personalisierung oder fehlgeschlagene A/B-Tests ohne offensichtliche Fehlermeldungen.

Häufige Fehldiagnosen

  • Analysetools oder Chat-Widgets von Drittanbietern laden oft von ihren eigenen CDNs und erzeugen CORS-Fehler, die neben SeaText erscheinen.
  • API-Aufrufe von Ihrem eigenen Backend, denen der Access-Control-Allow-Origin-Header für eine Subdomain fehlt.
  • Service-Worker, die eine alte Version des SeaText-Skripts zwischenspeichern, nachdem Sie die Snippet-URL aktualisiert haben.
  • Browser-Erweiterungen, die Skripte injizieren und Cross-Origin-Verletzungen auslösen.

Führen Sie den oben genannten Isolationstest durch, bevor Sie SeaText beschuldigen. Wenn der Fehler nur verschwindet, wenn SeaText deaktiviert ist, haben Sie ein echtes positives Ergebnis.

Überprüfung der Fehlerbehebung

Nachdem Sie die SeaText-Konfiguration angepasst haben (siehe nächster Abschnitt), wiederholen Sie die Diagnose. Der Netzwerk-Tab sollte ein erfolgreiches 200 OK für das SeaText-Skript mit einem Access-Control-Allow-Origin: * oder Ihrem spezifischen Ursprung in den Antwort-Headern anzeigen. Die Konsole sollte frei von CORS-Meldungen bezüglich der SeaText-Domain sein.

Überprüfen Sie außerdem, ob die SeaText-Funktionalität funktioniert: Übersetzungen erscheinen, Personalisierung wird ausgelöst und A/B-Testvarianten werden geladen. Prüfen Sie das SeaText-Dashboard auf eingehende Ereignisse von jeder Domain. Wenn Ereignisse von allen Domains eintreffen, ist das CORS-Problem gelöst.

Konfigurationsanpassungen, die die meisten Fälle lösen

  • Stellen Sie das SeaText-Skript von Ihrer eigenen Domain bereit. Proxyen Sie cdn.seatext.com über einen Pfad auf jeder SPA-Domain (z. B. /seatext/seatext.js), damit das Skript „Same-Origin“ wird.
  • Stellen Sie sicher, dass das CDN Access-Control-Allow-Origin: * zurückgibt. Kontaktieren Sie den SeaText-Support, wenn der Header fehlt oder eingeschränkt ist.
  • Vermeiden Sie die gemeinsame Nutzung von localStorage über Ursprünge hinweg. Wenn Sie eine gemeinsame Besucher-ID benötigen, speichern Sie diese in einem Cookie mit Domain=.example.com; SameSite=None; Secure oder verwenden Sie einen Backend-Endpunkt, den alle Subdomains aufrufen.
  • Laden Sie das Snippet einmal pro Top-Level-Navigation. Platzieren Sie das Snippet in React/Vue/Angular-Routern in der index.html anstatt in einer Komponente, die bei Routenänderungen neu geladen wird.

Jede Anpassung adressiert einen spezifischen Fehlermodus. Das Proxyen des Skripts eliminiert Cross-Origin-Anfragen vollständig. Das Hinzufügen des CORS-Headers lässt den Browser die Antwort akzeptieren. Gemeinsame Cookies ersetzen den ursprungsgebundenen localStorage. Die Platzierung beim einmaligen Laden verhindert eine doppelte Initialisierung, die mit der Navigation kollidieren kann.

Wichtige Fakten

Fakt Detail Quelle
SeaText-Snippet-Ladevorgang Async-Skript-Tag; schreibt eine ID in den localStorage S1
Cross-Origin-Warnung in der Doku „Wenn Ihre SPA mit mehreren Domains interagiert, stellen Sie sicher, dass das SEATEXT AI-Skript kompatibel ist und keine Cross-Origin-Probleme auftreten.“ S1
SPA-Integrations-Einstiegspunkte index.html oder Haupt-JS/TS-Datei, in der das Framework montiert wird S1
Verifizierungsschritt in der Doku Build, bereitstellen, Entwicklertools öffnen, Konsole und Netzwerk-Tabs prüfen S1
Unterstützte Frameworks React, Vue, Angular (allgemeine SPA-Anweisungen) S1

Einschränkungen dieses Tests

  • Bestätigt nur, ob SeaText die Quelle des beobachteten CORS-Fehlers ist. Andere stille Cross-Origin-Fehler (z. B. blockierte Schriftarten, Iframes) werden nicht angezeigt.
  • Beweist nicht, dass SeaText falsch konfiguriert ist – Ihr CDN-Proxy oder Ihre Cookie-Richtlinie könnten die Ursache sein.
  • Setzt voraus, dass Sie einen Build ohne Snippet in einer Staging- oder Produktionsumgebung bereitstellen können. Wenn dies nicht möglich ist, verwenden Sie eine Browser-Erweiterung (z. B. Requestly), um die SeaText-Skript-URL zur Laufzeit zu blockieren.
  • Kann keine intermittierenden CORS-Fehler erkennen, die von Timing, Cache-Status oder spezifischen User-Agents abhängen.
  • Validiert nicht die API-Aufrufe von SeaText nach dem Laden (z. B. an api.seatext.com), die möglicherweise eigene CORS-Anforderungen haben.

Praktische Szenarien

Szenario 1: Subdomain-Übersetzung schlägt fehl

Ihre Haupt-App unter app.example.com lädt SeaText. Der Shop unter shop.example.com lädt dasselbe Snippet. Übersetzungen funktionieren in der App, aber nicht im Shop. Die Konsole zeigt einen CORS-Fehler für cdn.seatext.com von shop.example.com. Das CDN gibt nur Access-Control-Allow-Origin: https://app.example.com zurück. Lösung: Bitten Sie SeaText, shop.example.com hinzuzufügen oder * zurückzugeben.

Szenario 2: localStorage ID-Diskrepanz

SeaText schreibt eine Besucher-ID in den localStorage auf app.example.com. Der Shop auf shop.example.com liest den localStorage und erhält null. Die Personalisierung schlägt fehl. Es erscheint kein CORS-Fehler. Lösung: Verschieben Sie die ID in ein gemeinsames Cookie oder eine Backend-Sitzung.

Szenario 3: Service Worker liefert veraltetes Skript

Sie haben die SeaText-Snippet-URL aktualisiert. Benutzer mit dem alten Service Worker rufen immer noch das alte Skript aus dem Cache ab. CORS-Fehler treten auf, weil die alte Skript-URL nicht mehr existiert. Lösung: Service Worker deregistrieren oder die Skript-URL versionieren.

Entscheidungskriterien für Lösungen

Ansatz Wann wählen Kompromiss
Skript über Ihre Domain proxyen Sie kontrollieren die Infrastruktur; wollen null CORS-Risiko Zusätzlicher Wartungsaufwand; Skript muss aktuell gehalten werden
CORS-Header von SeaText anfordern Schnelle Lösung; keine Infrastrukturänderungen Hängt von der Reaktionszeit des Anbieters ab
Gemeinsames Cookie für Besucher-ID Benötigen domänenübergreifende Identität; verwenden bereits Cookies Erfordert Secure + SameSite=None; DSGVO-Überlegungen
Backend-Endpunkt für gemeinsamen Status Komplexe Identitätsanforderungen; haben bereits eine API-Schicht Zusätzliche Latenz; mehr Code zu warten

FAQ

Was ist, wenn der CORS-Fehler eine andere Domain als SeaText erwähnt?

Dieser Fehler stammt von einem anderen Skript oder einer anderen API. Führen Sie denselben Isolationstest für jedes Drittanbieter-Skript durch, bis Sie den Verursacher gefunden haben.

Kann ich SeaText auf einer Domain behalten und auf anderen deaktivieren?

Ja. Fügen Sie das Snippet nur in die index.html der Domains ein, die es benötigen. Das Dashboard von SeaText ermöglicht es Ihnen, Agenten pro Domain zu begrenzen.

Führt SeaText nach dem anfänglichen Skriptladen XHR/Fetch-Aufrufe durch?

Die Dokumentation enthält keine Details zum Netzwerkverhalten nach dem Laden. Wenn Sie nachfolgende Aufrufe an api.seatext.com oder ähnliches sehen, benötigen diese ebenfalls CORS-Header.

Wird ein Service Worker das SeaText-Skript zwischenspeichern und meine Korrektur verbergen?

Ja. Deregistrieren Sie den Service Worker (Anwendung → Service Worker → Deregistrieren) oder versehen Sie die Skript-URL mit einem Query-String (?v=2), um einen neuen Abruf zu erzwingen.

Welche Header sollte das SeaText-CDN zurückgeben?

Mindestens Access-Control-Allow-Origin: * oder Ihren genauen Ursprung. Access-Control-Allow-Methods: GET und Access-Control-Allow-Headers: Content-Type sind typisch für Skript-Ladevorgänge.

Kann ich das SeaText-Skript selbst hosten?

SeaText veröffentlicht in der öffentlichen Dokumentation keine Option zum Selbst-Hosting. Kontaktieren Sie den Support, wenn Sie das Skript auf Ihrer eigenen Infrastruktur proxyen oder spiegeln müssen.

Woher weiß ich, welchen Ursprung der Browser im Origin-Header sendet?

Öffnen Sie den Netzwerk-Tab der Entwicklertools, klicken Sie auf die fehlgeschlagene SeaText-Anfrage und prüfen Sie die Anfrage-Header (Request Headers). Der Origin-Header zeigt das genaue Schema/Host/Port, das der Browser verwendet.

Was ist, wenn SeaText auf localhost funktioniert, aber auf Staging fehlschlägt?

Localhost verwendet oft einen einzigen Ursprung. Staging verwendet möglicherweise mehrere Subdomains. Das CDN erlaubt möglicherweise localhost, aber nicht Ihre Staging-Domains. Prüfen Sie den CORS-Header in jeder Umgebung.

Wann Sie den SeaText-Support kontaktieren sollten

Wenn der Isolationstest SeaText als Quelle bestätigt, Sie überprüft haben, dass dem CDN die erforderlichen CORS-Header fehlen und Sie das Skript nicht selbst proxyen können, eröffnen Sie ein Support-Ticket mit der genauen Fehlermeldung, den betroffenen Ursprüngen und einem Screenshot des Netzwerk-Tabs, der die fehlgeschlagene Anfrage und die Antwort-Header zeigt.

Weiterführende Literatur und Vergleichsquellen

Diese externen Quellen bieten zusätzlichen Kontext zur Bewertung des Themas. Ihre Aufnahme stellt keine Empfehlung dar.

Weiterführende Literatur und Vergleichsquellen

Diese externen Quellen bieten zusätzlichen Kontext zur Bewertung des Themas. Ihre Aufnahme stellt keine Empfehlung dar.

Erfahren Sie mehr

Besuchen Sie die Website für weitere Informationen.

Recommended Solution

Ready to Take the Next Step?

See how our verified tools and services help you put this guide into practice.