---
title: "Napraw błąd Script error, który ukrywa komunikat, plik i wiersz"
description: "Script error. z wierszem 0 i bez śladu stosu oznacza, że przeglądarka ukryła błąd ze skryptu z innego źródła. Dodaj crossorigin i nagłówek CORS, aby odzyskać komunikat."
canonical: "https://logbrew.co/pl/errors/script-error"
last_updated: "2026-11-10"
---

# Napraw błąd Script error, który ukrywa komunikat, plik i wiersz

`Script error.` z wierszem 0 i bez śladu stosu oznacza, że przeglądarka ukryła błąd ze skryptu z innego źródła. Dodaj `crossorigin` i nagłówek CORS, aby odzyskać komunikat.

Przetestowane 10 listopada 2026 z użyciem Chromium 152, @logbrew/browser 0.1.21 i @logbrew/sdk 0.1.44

Autor [Furkan Erday](https://github.com/furkanerday). Furkan Erday jest założycielem LogBrew. Codziennie rozwija LogBrew z pomocą Claude Code i Codex.

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

## Czego strona dowiaduje się ze skryptu, który rzuca błąd

| Jak wczytano skrypt | Skrypt uruchomiony | Szczegóły błędu |
| --- | --- | --- |
| Z własnego źródła strony | Uruchomiony | Pełne |
| Z innego źródła | Uruchomiony | `Script error.` |
| Inne źródło, `crossorigin` i nagłówek CORS | Uruchomiony | Pełne |
| Inne źródło, `crossorigin` bez nagłówka | Zablokowany | Brak |

1 skrypt, wczytany na 4 sposoby. Pełne oznacza komunikat, plik, wiersz 1, kolumnę 7 i ślad stosu, odczytane ze zdarzenia `error` na `window`.

## Odzyskaj pełny błąd

### Wczytaj skrypt z atrybutem crossorigin

Atrybut każe przeglądarce pobrać plik z CORS. Gdy serwer na to pozwala, przeglądarka przekazuje prawdziwy komunikat, plik, wiersz i ślad stosu do obsługi błędów na stronie.

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

### Wyślij nagłówek CORS z serwera pliku

Serwer, który hostuje skrypt, musi odpowiedzieć nagłówkiem `Access-Control-Allow-Origin` ustawionym na źródło Twojej strony albo na `*` dla pliku publicznego. W naszym teście sam nagłówek zamienił `Script error.` w pełny komunikat.

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

### Sprawdź, czy plik nadal się wczytuje

Z ustawionym `crossorigin` i bez nagłówka przeglądarka blokuje plik i skrypt nigdy się nie uruchamia. Konsola pokazuje wtedy `blocked by CORS policy` i `net::ERR_FAILED`, a element `script` wyzwala zdarzenie `error`.

Wynik

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

### Albo serwuj skrypt z własnego źródła

Skrypt z własnego źródła strony nigdy nie ma wyciszonych błędów. Spakuj plik razem z aplikacją albo przepuść go przez proxy w swojej domenie, a nagłówek nie będzie potrzebny.

## Obsłuż wyciszone błędy, które nadal dostajesz

### Policz je, potem znajdź skrypt

`Script error.` nie niesie nic do naprawienia. Każdy taki błąd oznacza, że skrypt z innego źródła rzucił wyjątek. Znajdź tagi bez `crossorigin` i zacznij od tych, które wczytują się na każdej stronie.

### Przeczytaj prawdziwy komunikat w konsoli

Przeglądarka wypisuje pełny błąd w konsoli, nawet gdy wycisza go dla Twojej obsługi błędów. W naszym teście konsola pokazała `Uncaught Error: Keg is empty`, a `window.onerror` dostał `Script error.`.

### Zdecyduj, co zrobić z tagami firm trzecich

Widżet czatu albo tag analityczny bez nagłówka CORS zostawia Ci 2 wyjścia. Zostaw go bez zmian i pogódź się z wyciszonymi błędami, albo dodaj `crossorigin`, aby brak nagłówka zablokował tag i pokazał się jako nieudane wczytanie.

## Co zobaczyliśmy podczas testu

Umieściliśmy 1 skrypt, który rzuca błąd, `throw new Error("Keg is empty: no beer left for order 42");`, na 2 lokalnych serwerach. Strona działała pod `http://127.0.0.1:4873` w Chromium 152 z zainstalowanym `@logbrew/browser` 0.1.21, a drugi serwer pod `http://127.0.0.1:4874` grał rolę CDN. Wczytaliśmy skrypt na 4 sposoby i za każdym razem odczytaliśmy zdarzenie `error` na `window`.

Z własnego źródła strony zdarzenie niosło `Uncaught Error: Keg is empty: no beer left for order 42`, plik `/throws.js`, wiersz 1, kolumnę 7 i obiekt `Error` ze śladem stosu. Z innego źródła bez `crossorigin` zdarzenie niosło `Script error.`, pustą nazwę pliku, wiersz 0, kolumnę 0 i żadnego obiektu `Error`. Konsola nadal wypisała pełny komunikat.

Z `crossorigin="anonymous"` i `Access-Control-Allow-Origin: *` na CDN zdarzenie znów niosło pełne szczegóły. Z atrybutem i bez nagłówka przeglądarka zablokowała plik, skrypt nigdy się nie uruchomił, a element `script` wyzwolił zdarzenie `error`.

## Dlaczego przeglądarka ukrywa komunikat

Standard HTML wycisza błędy ze skryptów, które strona pobrała z innego źródła (origin) bez CORS. Jego algorytm ustawia muted errors, gdy odpowiedź była CORS-cross-origin, a potem zgłasza błąd jako `Script error.` bez URL, z wierszem 0, kolumną 0 i bez obiektu błędu.

Przeglądarka traktuje tekst błędu ze skryptu z innego źródła jak dane tego skryptu, więc strona nie dostaje nic. Strona MDN o `crossorigin` mówi to samo w 1 zdaniu. Dostęp do logowania błędów przez `window.onerror` jest dla takich skryptów ograniczony.

Zgłoszenie whatwg/html#2440 prosiło o sposób na szczegóły bez CORS. Zamknięto je w lipcu 2024, tego samego dnia, gdy otwarto whatwg/html#10514 z informacją, że przeglądarki nie wyciszają tych samych przypadków w ten sam sposób. To zgłoszenie jest nadal otwarte.

## Co zapisuje LogBrew

Z pełnymi szczegółami SDK dla przeglądarki wysłało 1 problem o nazwie `Browser error: Error` z ramką stosu dla `/throws.js` w wierszu 1, kolumnie 7, ścieżką źródłową i kluczem grupowania `browser.error:Error:/throws.js`. Każdy skrypt, który rzuca błąd, dostaje własny problem.

Z wyciszonym błędem problem miał tę samą nazwę, zero ramek stosu, wiersz 0, kolumnę 0 i klucz grupowania `browser.error:Error`. Wyciszone błędy dzielą ten 1 problem, więc jego licznik mówi, ilu błędów jeszcze nie widzisz.

Oba zdarzenia niosły ścieżkę strony, środowisko uruchomieniowe `Chromium 152` na `macOS` i breadcrumb `page_view`. Żadne nie niosło tekstu komunikatu. SDK oznaczyło go jako `redacted`.

## Najczęściej zadawane pytania

### Co oznacza Script error. w JavaScript?

Skrypt z innego źródła rzucił błąd, a przeglądarka ukryła szczegóły przed stroną, bo plik nie został wczytany z CORS. Sam skrypt się uruchomił.

### Dlaczego Script error. ma wiersz 0 i brak śladu stosu?

Standard HTML podmienia komunikat, plik, wiersz, kolumnę i obiekt błędu, gdy wycisza błąd. Zostaje tylko ciąg `Script error.`.

### Czy Script error. oznacza, że skrypt się nie wczytał?

Nie. Skrypt, który się nie wczytał, wyzwala zdarzenie `error` na swoim elemencie `script` i nigdy się nie uruchamia. `Script error.` oznacza, że skrypt się uruchomił i rzucił błąd.

### Czy mogę zobaczyć komunikat bez zmian na serwerze?

W konsoli przeglądarki tak. W śledzeniu błędów nie. Strona potrzebuje `crossorigin` na tagu i nagłówka CORS z serwera, albo skryptu z własnego źródła.

### Czy odfiltrować Script error. ze śledzenia błędów?

Zamiast tego licz te błędy. Liczba mówi, ilu błędów nie widzisz, i spada do 0, gdy każdy skrypt z innego źródła wczytuje się z CORS.

## Policz błędy, których jeszcze nie widzisz

SDK LogBrew dla przeglądarki trzyma każdy wyciszony błąd w 1 problemie, a każdemu prawdziwemu daje plik, wiersz i ślad stosu. Zacznij od hojnego darmowego planu, bez karty.

[Zacznij za darmo](https://logbrew.co/pl)

## Źródła

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

## Więcej napraw błędów JavaScript

- [Napraw błąd Failed to fetch i odróżnij jego 3 przyczyny](https://logbrew.co/pl/errors/failed-to-fetch)
- [Błędy JavaScript, które odtworzyliśmy, i jak naprawić każdy z nich](https://logbrew.co/pl/errors)
