---
title: "Den Script error beheben, der Meldung, Datei und Zeile verbirgt"
description: "Script error. mit Zeile 0 und ohne Stacktrace heißt, der Browser verbirgt einen Fehler aus einem Skript auf einem anderen Origin. Mit crossorigin und einem CORS-Header kommt die Meldung zurück."
canonical: "https://logbrew.co/de/errors/script-error"
last_updated: "2026-11-10"
---

# Den Script error beheben, der Meldung, Datei und Zeile verbirgt

`Script error.` mit Zeile 0 und ohne Stacktrace heißt, der Browser verbirgt einen Fehler aus einem Skript auf einem anderen Origin. Mit `crossorigin` und einem CORS-Header kommt die Meldung zurück.

Getestet am 10. November 2026 mit Chromium 152, @logbrew/browser 0.1.21 und @logbrew/sdk 0.1.44

Von [Furkan Erday](https://github.com/furkanerday). Furkan Erday hat LogBrew gegründet. Er entwickelt LogBrew jeden Tag mit Claude Code und Codex.

Canonical: https://logbrew.co/de/errors/script-error

## Was die Seite von einem Skript erfährt, das einen Fehler wirft

| Wie das Skript lädt | Skript lief | Fehlerdetails |
| --- | --- | --- |
| Vom eigenen Origin der Seite | Lief | Voll |
| Von einem anderen Origin | Lief | `Script error.` |
| Anderer Origin, `crossorigin` und CORS-Header | Lief | Voll |
| Anderer Origin, `crossorigin` und kein Header | Blockiert | Keine |

1 Skript, auf 4 Arten geladen. Voll heißt Meldung, Datei, Zeile 1, Spalte 7 und Stacktrace, gelesen aus dem Ereignis `error` auf `window`.

## Den vollen Fehler zurückholen

### Das Skript mit dem Attribut crossorigin laden

Das Attribut sagt dem Browser, dass er die Datei mit CORS laden soll. Wenn der Server es erlaubt, gibt der Browser die echte Meldung, Datei, Zeile und den Stacktrace an die Fehler-Listener der Seite weiter.

```bash
<script src="https://cdn.example.com/app.js" crossorigin="anonymous"></script>
```

### Den CORS-Header vom Server der Datei senden

Der Server, der das Skript ausliefert, muss mit `Access-Control-Allow-Origin` antworten, gesetzt auf den Origin deiner Seite oder auf `*` für eine öffentliche Datei. In unserem Test hat allein dieser Header aus `Script error.` die volle Meldung gemacht.

```bash
Access-Control-Allow-Origin: *
```

### Prüfen, dass die Datei noch lädt

Mit gesetztem `crossorigin` und ohne Header blockiert der Browser die Datei, und das Skript läuft nie. Die Konsole zeigt dann `blocked by CORS policy` und `net::ERR_FAILED`, und das Element `script` löst sein Ereignis `error` aus.

Ausgabe

```text
Access to script at 'http://127.0.0.1:4874/plain/throws.js?scenario=script-cross-origin-attr-no-header' from origin 'http://127.0.0.1:4873' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Failed to load resource: net::ERR_FAILED
```

### Oder das Skript vom eigenen Origin ausliefern

Ein Skript vom eigenen Origin der Seite unterdrückt seine Fehler nie. Bündle die Datei mit deiner App oder reiche sie per Proxy über deine Domain aus, dann braucht es keinen Header.

## Mit den stummen Fehlern umgehen, die du trotzdem bekommst

### Zählen, dann das Skript finden

`Script error.` enthält nichts, was du beheben könntest. Jeder davon heißt, ein Skript auf einem anderen Origin hat einen Fehler geworfen. Finde die Tags ohne `crossorigin` und beginne mit denen, die auf jeder Seite laden.

### Die echte Meldung in der Konsole lesen

Der Browser schreibt den vollen Fehler in die Konsole, auch wenn er ihn für deine Listener stummschaltet. In unserem Test zeigte die Konsole `Uncaught Error: Keg is empty`, während `window.onerror` nur `Script error.` bekam.

### Entscheiden, was mit Drittanbieter-Tags passiert

Ein Chat-Widget oder ein Analyse-Tag ohne CORS-Header lässt dir 2 Möglichkeiten. Lass es, wie es ist, und nimm stumme Fehler in Kauf, oder füge `crossorigin` hinzu, damit ein fehlender Header das Tag blockiert und als fehlgeschlagener Ladevorgang sichtbar wird.

## Was wir beim Testen gesehen haben

Wir haben 1 Skript, das einen Fehler wirft, `throw new Error("Keg is empty: no beer left for order 42");`, auf 2 lokale Server gelegt. Die Seite lief unter `http://127.0.0.1:4873` in Chromium 152 mit installiertem `@logbrew/browser` 0.1.21, und ein zweiter Server unter `http://127.0.0.1:4874` spielte das CDN. Wir haben das Skript auf 4 Arten geladen und jedes Mal das Ereignis `error` auf `window` gelesen.

Vom eigenen Origin der Seite trug das Ereignis `Uncaught Error: Keg is empty: no beer left for order 42`, die Datei `/throws.js`, Zeile 1, Spalte 7 und ein `Error`-Objekt mit Stacktrace. Vom anderen Origin ohne `crossorigin` trug das Ereignis `Script error.`, einen leeren Dateinamen, Zeile 0, Spalte 0 und kein `Error`-Objekt. Die Konsole druckte trotzdem die volle Meldung.

Mit `crossorigin="anonymous"` und `Access-Control-Allow-Origin: *` auf dem CDN trug das Ereignis wieder alle Details. Mit dem Attribut und ohne Header blockierte der Browser die Datei, das Skript lief nie, und das Element `script` löste sein Ereignis `error` aus.

## Warum der Browser die Meldung verbirgt

Der HTML-Standard schaltet Fehler aus Skripten stumm, die die Seite ohne CORS von anderen Origins geladen hat. Sein Algorithmus markiert die Fehler als stumm, wenn die Antwort CORS-cross-origin war, und meldet den Fehler dann als `Script error.` ohne URL, mit Zeile 0, Spalte 0 und ohne Fehlerobjekt.

Der Browser behandelt den Fehlertext eines cross-origin geladenen Skripts als Daten dieses Skripts, die Seite bekommt also nichts davon. Die MDN-Seite zu `crossorigin` sagt dasselbe in 1 Zeile. Der Zugriff auf Fehler-Logging über `window.onerror` ist für solche Skripte eingeschränkt.

whatwg/html#2440 bat um einen Weg, die Details ohne CORS zu bekommen. Es wurde im Juli 2024 geschlossen, am selben Tag, an dem whatwg/html#10514 aufging und meldete, dass Browser dieselben Fälle nicht auf dieselbe Weise stummschalten. Dieses Issue ist noch offen.

## Was LogBrew aufzeichnet

Mit allen Details schickte das Browser-SDK 1 Issue namens `Browser error: Error` mit einem Stackframe für `/throws.js` in Zeile 1, Spalte 7, dem Quellpfad und dem Gruppierungsschlüssel `browser.error:Error:/throws.js`. Jedes Skript, das einen Fehler wirft, bekommt sein eigenes Issue.

Mit dem stummen Fehler hatte das Issue denselben Namen, keine Stackframes, Zeile 0, Spalte 0 und den Gruppierungsschlüssel `browser.error:Error`. Stumme Fehler teilen sich dieses 1 Issue, seine Anzahl sagt dir also, wie viele Fehler du noch nicht sehen kannst.

Beide Ereignisse trugen den Seitenpfad, die Laufzeit `Chromium 152` auf `macOS` und einen `page_view`-Breadcrumb. Keines trug den Meldungstext. Das SDK hat ihn als `redacted` markiert.

## Häufige Fragen

### Was bedeutet Script error. in JavaScript?

Ein Skript von einem anderen Origin hat einen Fehler geworfen, und der Browser hat die Details vor der Seite verborgen, weil die Datei nicht mit CORS geladen wurde. Das Skript selbst lief.

### Warum hat Script error. Zeile 0 und keinen Stacktrace?

Der HTML-Standard ersetzt Meldung, Datei, Zeile, Spalte und Fehlerobjekt, wenn er einen Fehler stummschaltet. Übrig bleibt nur der String `Script error.`.

### Heißt Script error., dass das Skript nicht geladen wurde?

Nein. Ein Skript, das nicht lädt, löst das Ereignis `error` auf seinem Element `script` aus und läuft nie. `Script error.` heißt, das Skript lief und hat einen Fehler geworfen.

### Kann ich die Meldung sehen, ohne den Server zu ändern?

In der Browser-Konsole ja. In deinem Fehlertracking nein. Die Seite braucht `crossorigin` am Tag und den CORS-Header vom Server, oder das Skript auf deinem eigenen Origin.

### Soll ich Script error. aus meinem Fehlertracking herausfiltern?

Zähle ihn lieber. Die Zahl sagt dir, wie viele Fehler du nicht sehen kannst, und sie fällt auf 0, sobald jedes cross-origin geladene Skript mit CORS lädt.

## Zähle die Fehler, die du noch nicht sehen kannst

Das LogBrew-Browser-SDK hält jeden stummen Fehler in 1 Issue und gibt jedem echten seine Datei, Zeile und seinen Stacktrace. Starte mit dem großzügigen kostenlosen Plan, ohne Kreditkarte.

[Kostenlos starten](https://logbrew.co/de)

## Quellen

- [MDN, Window: error event](https://developer.mozilla.org/en-US/docs/Web/API/Window/error_event)
- [MDN, crossorigin attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/crossorigin)
- [HTML Standard, Runtime script errors](https://html.spec.whatwg.org/multipage/webappapis.html#runtime-script-errors)
- [whatwg/html#2440](https://github.com/whatwg/html/issues/2440)
- [whatwg/html#10514](https://github.com/whatwg/html/issues/10514)

## Weitere JavaScript-Fehler beheben

- [Den Fehler Failed to fetch beheben und seine 3 Ursachen unterscheiden](https://logbrew.co/de/errors/failed-to-fetch)
- [JavaScript-Fehler, die wir reproduziert haben, und wie du jeden behebst](https://logbrew.co/de/errors)
