---
title: "De Script error oplossen die zijn melding, bestand en regel verbergt"
description: "Script error. met regel 0 en geen stacktrace betekent dat de browser een fout van een script op een andere origin verborg. Voeg crossorigin en een CORS-header toe om de melding terug te krijgen."
canonical: "https://logbrew.co/nl/errors/script-error"
last_updated: "2026-11-10"
---

# De Script error oplossen die zijn melding, bestand en regel verbergt

`Script error.` met regel 0 en geen stacktrace betekent dat de browser een fout van een script op een andere origin verborg. Voeg `crossorigin` en een CORS-header toe om de melding terug te krijgen.

Getest op 10 november 2026 met Chromium 152, @logbrew/browser 0.1.21 en @logbrew/sdk 0.1.44

Door [Furkan Erday](https://github.com/furkanerday). Furkan Erday is de oprichter van LogBrew. Hij bouwt LogBrew elke dag met Claude Code en Codex.

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

## Wat de pagina leert van een script dat een fout gooit

| Hoe het script laadt | Script draaide | Foutdetails |
| --- | --- | --- |
| Van de eigen origin van de pagina | Draaide | Volledig |
| Van een andere origin | Draaide | `Script error.` |
| Andere origin, `crossorigin` en de CORS-header | Draaide | Volledig |
| Andere origin, `crossorigin` en geen header | Geblokkeerd | Geen |

1 script, op 4 manieren geladen. Volledig betekent de foutmelding, het bestand, regel 1, kolom 7 en de stacktrace, gelezen uit het `error`-event op `window`.

## Krijg de volledige fout terug

### Laad het script met het crossorigin-attribuut

Het attribuut zegt de browser om het bestand met CORS op te halen. Als de server het toestaat, geeft de browser de echte melding, het bestand, de regel en de stacktrace door aan de error-listeners van de pagina.

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

### Stuur de CORS-header vanaf de server van het bestand

De server die het script host moet antwoorden met `Access-Control-Allow-Origin` gezet op de origin van je pagina, of `*` voor een publiek bestand. In onze test maakte de header alleen al van `Script error.` de volledige melding.

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

### Controleer of het bestand nog laadt

Met `crossorigin` gezet en geen header blokkeert de browser het bestand en draait het script nooit. De console toont dan `blocked by CORS policy` en `net::ERR_FAILED`, en het `script`-element vuurt zijn `error`-event af.

Uitvoer

```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
```

### Of serveer het script vanaf je eigen origin

Een script van de eigen origin van de pagina dempt zijn fouten nooit. Bundel het bestand met je app, of proxy het via je eigen domein, en er is geen header nodig.

## Ga om met de gedempte fouten die je nog krijgt

### Tel ze, en zoek dan het script

`Script error.` bevat niets om op te lossen. Elke betekent dat een script op een andere origin een fout gooide. Zoek de tags zonder `crossorigin` en begin met de tags die op elke pagina laden.

### Lees de echte melding in de console

De browser print de volledige fout in de console, ook als hij hem dempt voor je listeners. In onze test toonde de console `Uncaught Error: Keg is empty` terwijl `window.onerror` `Script error.` kreeg.

### Beslis wat je doet met tags van derden

Een chatwidget of analytics-tag zonder CORS-header laat je 2 keuzes. Laat hem zoals hij is en accepteer gedempte fouten, of voeg `crossorigin` toe zodat een ontbrekende header de tag blokkeert en hij als mislukte load verschijnt.

## Wat we zagen in onze test

We zetten 1 script dat een fout gooit, `throw new Error("Keg is empty: no beer left for order 42");`, op 2 lokale servers. De pagina draaide op `http://127.0.0.1:4873` in Chromium 152 met `@logbrew/browser` 0.1.21 geïnstalleerd, en een tweede server op `http://127.0.0.1:4874` speelde de CDN. We laadden het script op 4 manieren en lazen elke keer het `error`-event op `window`.

Van de eigen origin van de pagina bevatte het event `Uncaught Error: Keg is empty: no beer left for order 42`, het bestand `/throws.js`, regel 1, kolom 7 en een `Error`-object met een stacktrace. Van de andere origin zonder `crossorigin` bevatte het event `Script error.`, een lege bestandsnaam, regel 0, kolom 0 en geen `Error`-object. De console printte nog steeds de volledige melding.

Met `crossorigin="anonymous"` en `Access-Control-Allow-Origin: *` op de CDN bevatte het event de volledige details weer. Met het attribuut en geen header blokkeerde de browser het bestand, draaide het script nooit en vuurde het `script`-element zijn `error`-event af.

## Waarom de browser de melding verbergt

De HTML Standard dempt fouten van scripts die de pagina zonder CORS van een andere origin ophaalde. Het algoritme markeert de fouten als gedempt als het antwoord CORS-cross-origin was, en meldt de fout dan als `Script error.` zonder URL, met regel 0, kolom 0 en geen foutobject.

De browser behandelt de fouttekst van een cross-origin script als data van dat script, dus de pagina krijgt er niets van. De MDN-pagina over `crossorigin` zegt hetzelfde in 1 regel. Toegang tot foutlogging via `window.onerror` is beperkt voor zulke scripts.

whatwg/html#2440 vroeg om een manier om de details zonder CORS te krijgen. Het ging dicht in juli 2024, op de dag dat whatwg/html#10514 openging om te melden dat browsers dezelfde gevallen niet op dezelfde manier dempen. Dat issue staat nog open.

## Wat LogBrew vastlegt

Met de volledige details stuurde de browser-SDK 1 issue met de naam `Browser error: Error`, met een stackframe voor `/throws.js` op regel 1, kolom 7, het bronpad en de groeperingssleutel `browser.error:Error:/throws.js`. Elk script dat een fout gooit krijgt zijn eigen issue.

Met de gedempte fout had het issue dezelfde naam, geen stackframes, regel 0, kolom 0 en de groeperingssleutel `browser.error:Error`. Gedempte fouten delen samen 1 issue, dus de teller ervan zegt hoeveel fouten je nog niet kunt zien.

Beide events bevatten het paginapad, de runtime `Chromium 152` op `macOS` en een `page_view`-breadcrumb. Geen van beide bevatte de tekst van de melding. De SDK markeerde die als `redacted`.

## Veelgestelde vragen

### Wat betekent Script error. in JavaScript?

Een script op een andere origin gooide een fout, en de browser verborg de details voor de pagina omdat het bestand niet met CORS was geladen. Het script zelf draaide.

### Waarom heeft Script error. regel 0 en geen stacktrace?

De HTML Standard vervangt de melding, het bestand, de regel, de kolom en het foutobject als hij een fout dempt. Alleen de string `Script error.` blijft over.

### Betekent Script error. dat het script niet laadde?

Nee. Een script dat niet laadt vuurt het `error`-event op zijn `script`-element af en draait nooit. `Script error.` betekent dat het script draaide en een fout gooide.

### Kan ik de melding zien zonder de server te veranderen?

In de browserconsole wel. In je foutopsporing niet. De pagina heeft `crossorigin` op de tag en de CORS-header van de server nodig, of het script op je eigen origin.

### Moet ik Script error. uit mijn foutopsporing filteren?

Tel hem liever. Het aantal zegt hoeveel fouten je niet kunt zien, en het zakt naar 0 zodra elk cross-origin script met CORS laadt.

## Tel de fouten die je nog niet kunt zien

De LogBrew browser-SDK houdt elke gedempte fout in 1 issue en geeft elke echte fout zijn bestand, regel en stacktrace. Begin met het ruime gratis abonnement, zonder creditcard.

[Gratis beginnen](https://logbrew.co/nl)

## Bronnen

- [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)

## Meer JavaScript-fouten oplossen

- [De fout Failed to fetch oplossen en de 3 oorzaken uit elkaar houden](https://logbrew.co/nl/errors/failed-to-fetch)
- [JavaScript-fouten die we reproduceerden, en hoe je elke oplost](https://logbrew.co/nl/errors)
