6.1 KiB
Häufige Fehler und Lösungen - Mercedes-Benz MYP Platform
JavaScript-Fehler
1. animateCounters is not defined
Problem: Die Funktion animateCounters
wird in admin.js
aufgerufen, aber nicht definiert.
Lösung: Funktion wurde hinzugefügt in admin.js
mit Intersection Observer für bessere Performance.
2. showPrinterModal is not defined
Problem: Die Funktion showPrinterModal
wird aufgerufen, aber nicht definiert.
Lösung: Vollständige Modal-Funktion mit Formular-Handling wurde hinzugefügt.
3. JSON.parse: unexpected character at line 1 column 1
Problem: API-Aufrufe geben HTML statt JSON zurück (404-Fehler). Ursache: Frontend läuft auf Port 8443, Backend auf Port 5000. Lösung: Dynamische API-URL-Erkennung mit intelligentem Fallback implementiert.
API-Fehler (404 NOT FOUND)
1. /api/admin/stats/live
- 404 Fehler
Problem: Live-Statistiken API gibt 404 zurück. Ursache: Port-Mismatch zwischen Frontend (8443) und Backend (5000). Lösung:
- Dynamische API-Base-URL-Erkennung implementiert
- Automatischer Fallback von HTTPS:8443 zu HTTP:5000
- Verbesserte Fehlerbehandlung in der Route
- Sichere Admin-Berechtigung-Prüfung
2. /api/admin/system/status
- 404 Fehler
Problem: System-Status API gibt 404 zurück. Lösung:
- Dynamische URL-Erkennung implementiert
- Sichere psutil-Imports mit Fallback
- Verbesserte Fehlerbehandlung
- Graceful degradation wenn Systemüberwachung nicht verfügbar
3. /api/admin/database/status
- 404 Fehler
Problem: Datenbank-Status API gibt 404 zurück. Lösung:
- Dynamische URL-Erkennung implementiert
- Sichere Datenbankpfad-Erkennung
- Verbesserte Verbindungstests
- Fallback für fehlende Dateien
Modal-Dialog Probleme
1. Automatische Weiterleitung zu 404-Seiten
Problem: Modal-Formulare submitten automatisch und leiten zu nicht existierenden Routen weiter.
Ursache: Fehlende preventDefault()
in Form-Event-Handlers.
Lösung:
e.preventDefault()
zu allen Form-Submit-Handlers hinzugefügt- Explizite Event-Handler-Bindung statt onclick-Attribute
- Verbesserte Modal-Schließung nach erfolgreichen Aktionen
2. Modal öffnet und schließt sofort
Problem: Modal-Dialoge erscheinen kurz und verschwinden dann. Ursache: Automatische Form-Submission ohne preventDefault. Lösung: Korrekte Event-Handler-Implementierung mit preventDefault.
Port-Konfiguration Probleme
1. Server läuft auf Port 5000 statt 8443
Problem: Logs zeigen Port 5000, aber Frontend erwartet 8443. Ursache: SSL-Konfiguration fehlgeschlagen, Fallback auf HTTP. Lösung:
- Intelligente Port-Erkennung implementiert
- Automatischer Fallback von HTTPS:8443 zu HTTP:5000
- Dynamische API-Base-URL-Generierung
- Detailliertes Logging der URL-Erkennung
2. Cross-Origin-Probleme
Problem: CORS-Fehler bei API-Aufrufen zwischen verschiedenen Ports. Lösung: Dynamische URL-Erkennung verhindert Cross-Origin-Requests.
3. Favicon 404-Fehler
Problem: /favicon.ico
gibt 404 zurück.
Lösung: Route hinzugefügt die vorhandene PNG-Datei verwendet.
Debugging-Strategien
1. Admin-API-Test-Route
Zweck: Überprüfung ob Admin-API grundsätzlich funktioniert.
Route: /api/admin/test
Verwendung: Zeigt Benutzer-Status und Admin-Berechtigung an.
2. Debug-Routen-Übersicht
Route: /debug/routes
Zweck: Zeigt alle registrierten Flask-Routen an.
3. Verbesserte Fehlerbehandlung
- Alle Admin-API-Routen haben jetzt try-catch-Blöcke
- Detaillierte Fehlermeldungen
- Graceful degradation bei fehlenden Abhängigkeiten
- Intelligente URL-Erkennung mit Logging
4. URL-Debugging
Konsolen-Logs: Alle API-Aufrufe loggen jetzt die verwendete URL Port-Erkennung: Detaillierte Informationen über erkannte Ports und Protokolle Fallback-Mechanismus: Automatische Umschaltung zwischen Ports
Präventive Maßnahmen
1. JavaScript-Funktionen
- Alle aufgerufenen Funktionen sind jetzt definiert
- Fallback-Mechanismen für fehlende Elemente
- Bessere Fehlerbehandlung in Event-Listenern
- Korrekte Form-Event-Handler mit preventDefault
2. API-Routen
- Konsistente Admin-Berechtigung-Prüfung
- Sichere Datenbankzugriffe mit finally-Blöcken
- Fallback-Werte für alle Statistiken
- Dynamische URL-Erkennung für alle API-Aufrufe
3. Template-Handling
- Alle Admin-Templates existieren
- Korrekte Template-Pfade
- Fehlerbehandlung für fehlende Templates
4. Port-Management
- Intelligente Port-Erkennung
- Automatische Fallback-Mechanismen
- Cross-Origin-Problem-Vermeidung
- Detailliertes URL-Logging
Aktuelle Status
✅ Behoben:
animateCounters
Funktion hinzugefügtshowPrinterModal
Funktion implementiert- Admin-API-Routen verbessert
- Favicon-Route hinzugefügt
- Fehlerbehandlung verstärkt
- Dynamische API-URL-Erkennung implementiert
- Modal-Dialog preventDefault-Problem behoben
- Port-Mismatch-Problem gelöst
- JSON-Parse-Fehler behoben
🔄 In Bearbeitung:
- SSL-Konfiguration optimieren
- Live-Updates stabilisieren
⚠️ Zu überwachen:
- Admin-Berechtigung-Prüfung
- Datenbankverbindung-Stabilität
- JavaScript-Performance bei Animationen
- API-URL-Fallback-Mechanismus
Nächste Schritte
- Server-Neustart testen - Die Port-Erkennung sollte jetzt funktionieren
- Admin-Dashboard-Funktionalität verifizieren - Alle Modals sollten funktionieren
- Live-Updates überwachen - API-Aufrufe sollten erfolgreich sein
- SSL-Konfiguration finalisieren
- Performance-Optimierungen implementieren
Technische Details
Port-Erkennung-Algorithmus
- Gleicher Port: Wenn Frontend und Backend auf gleichem Port → relative URLs
- HTTPS:8443 → HTTP:5000: Automatischer Fallback für häufigsten Fall
- Andere Ports: Standard-Backend-Port basierend auf Protokoll
- Logging: Alle Entscheidungen werden in der Konsole geloggt
Modal-Dialog-Fixes
e.preventDefault()
in allen Form-Submit-Handlers- Explizite Event-Listener statt onclick-Attribute
- Korrekte Modal-Schließung nach erfolgreichen API-Aufrufen
- Verbesserte Fehlerbehandlung mit Benutzer-Feedback