# Fehler-Fix – endgültige Erklärung und automatische Behebung ## Warum die gleichen Fehler immer wieder auftraten 1. **Seite als Datei geöffnet (Doppelklick auf .html)** Dann ist die Herkunft (Origin) `null` (file://). Der Browser schickt Anfragen an `http://localhost:3000`. CORS verlangt, dass der Server genau diese Herkunft erlaubt. Wenn der Server das nicht tat oder OPTIONS-Anfragen anders behandelte, kam: „No 'Access-Control-Allow-Origin' header“. 2. **Node-Server lief nicht** Wenn nichts auf Port 3000 antwortet (oder ein anderer Dienst), liefern API-Aufrufe 404 oder „Connection refused“. Die Meldung „Unexpected token '<'“ entsteht, wenn stattdessen eine HTML-Fehlerseite (z. B. 404-Seite) zurückkommt und der Code sie als JSON parst. 3. **content.js / initializeCurrentTab / „Cannot read properties of undefined (reading 'query')“** Das kommt **nicht** von dieser Anwendung. Es stammt von einer **Browser-Erweiterung** (z. B. Edge Copilot, Übersetzer, Passwort-Manager). **→ Kann ignoriert werden** oder die Erweiterung auf localhost/deine Seite deaktivieren. --- ## Was jetzt automatisch gefixt wird ### Server (whatsapp-like-server.js) - **CORS** wird mit dem Paket `cors` gesetzt, mit `origin: true` (inkl. Herkunft `null` für file://). - OPTIONS-Anfragen (Preflight) werden korrekt mit CORS-Headern beantwortet. ### Alle relevanten HTML-Seiten - **Automatische Umleitung**, wenn die Seite als **Datei** geöffnet wird (file://): - Sofort-Weiterleitung zu `http://localhost:3000/.html` - Beispiel: Doppelklick auf `manifest-forum (62).html` → Aufruf von `http://localhost:3000/manifest-forum.html` - Danach läuft die Seite unter der gleichen Origin wie die API → **kein CORS-Problem** mehr. ### Ablauf für dich 1. **Server starten:** `npm start` oder `node whatsapp-like-server.js` 2. **Seiten öffnen:** - Entweder direkt im Browser: `http://localhost:3000/` bzw. `http://localhost:3000/manifest-forum.html` usw. - Oder weiter per Doppelklick auf die .html – dann leitet die Seite **automatisch** auf localhost um (wenn der Server läuft). --- ## Wenn trotzdem noch Fehler erscheinen | Meldung | Bedeutung | Aktion | |--------|-----------|--------| | 404 auf /api/… | Kein (richtiger) Server auf dem gewählten Port | Server starten: `node whatsapp-like-server.js` | | CORS / „No 'Access-Control-Allow-Origin'“ | Antwort kommt von einem anderen Server oder alter Code | Aktuelle Dateien verwenden; Seite über `http://localhost:3000/…` öffnen | | content.js / initializeCurrentTab / .query | Browser-Extension | Ignorieren oder Erweiterung für diese Seite deaktivieren | | **GET …/manifest-portal.webmanifest net::ERR_CONNECTION_REFUSED** | **Server läuft nicht** auf dem angezeigten Port (z. B. 3099) | **Im Projektordner:** `node whatsapp-like-server.js` starten. Für E2E/Tests: `PORT=3099 node whatsapp-like-server.js` oder in Playwright wird der Server automatisch gestartet. | | **503 Service Unavailable** (z. B. portfolio.html) | Server war nicht erreichbar; Service Worker oder Browser liefert Offline-Antwort | Server starten (siehe oben). Danach Seite neu laden. | | **Failed to resolve module specifier "docx"** (bewerbung.html) | Browser versteht npm-Paketnamen nicht direkt | Behebung: bewerbung.html nutzt nun einen Import-Map mit Skypack-CDN. Seite über `http://localhost:…/bewerbung.html` öffnen. | | **favicon.ico 404** | Browser fragt automatisch /favicon.ico an | Server liefert 204, wenn keine favicon.ico vorhanden. Optional: favicon.ico ins Projekt legen. | | **sw.js "Failed to fetch" / Uncaught (in promise)** | SW fängt CDN-Requests ab oder Fetch schlägt fehl | SW v6: Cross-Origin (Skypack, docx) wird nicht mehr abgefangen. Stale-while-revalidate wirft keine unhandled rejections mehr. | | **Neue Einträge erstellen geht nicht** (Bewerbung) | docx-Import schlägt fehl → main.js lädt nicht → Buttons ohne Handler | docx per Import-Map + SW lässt CDN durch. Nach Update: Hard-Reload (Ctrl+Shift+R) oder Service Worker in DevTools deaktivieren/neu registrieren. | --- **Zusammenfassung:** Server zuerst starten, dann die App über `http://localhost:3000/` nutzen. Bei Doppelklick auf eine .html-Datei erfolgt die Umleitung auf localhost automatisch; CORS ist serverseitig für alle Origins inkl. `null` korrekt gesetzt.