---
title: "Mesajını, dosyasını ve satırını gizleyen script error hatasını çöz"
description: "Satır 0 ve stack olmadan gelen Script error., tarayıcının başka bir origin'deki script'in hatasını gizlediği anlamına gelir. Mesajı geri almak için crossorigin ve bir CORS başlığı ekle."
canonical: "https://logbrew.co/tr/errors/script-error"
last_updated: "2026-11-10"
---

# Mesajını, dosyasını ve satırını gizleyen script error hatasını çöz

Satır 0 ve stack olmadan gelen `Script error.`, tarayıcının başka bir origin'deki script'in hatasını gizlediği anlamına gelir. Mesajı geri almak için `crossorigin` ve bir CORS başlığı ekle.

10 Kasım 2026 tarihinde Chromium 152, @logbrew/browser 0.1.21 ve @logbrew/sdk 0.1.44 ile test edildi

[Furkan Erday](https://github.com/furkanerday) tarafından. Furkan Erday, LogBrew'un kurucusu. LogBrew'u her gün Claude Code ve Codex ile geliştiriyor.

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

## Hata fırlatan bir script'ten sayfa ne öğrenir

| Script nasıl yükleniyor | Script çalıştı | Hata ayrıntıları |
| --- | --- | --- |
| Sayfanın kendi origin'inden | Çalıştı | Tam |
| Başka bir origin'den | Çalıştı | `Script error.` |
| Başka origin, `crossorigin` ve CORS başlığı | Çalıştı | Tam |
| Başka origin, `crossorigin` ve başlık yok | Engellendi | Yok |

1 script, 4 şekilde yüklendi. Tam, `window` üzerindeki `error` olayından okunan mesaj, dosya, satır 1, sütun 7 ve stack trace demektir.

## Tam hatayı geri al

### Script'i crossorigin özniteliğiyle yükle

Bu öznitelik, tarayıcıya dosyayı CORS ile getirmesini söyler. Sunucu izin verdiğinde tarayıcı gerçek mesajı, dosyayı, satırı ve stack trace'i sayfanın hata dinleyicilerine iletir.

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

### CORS başlığını dosyanın sunucusundan gönder

Script'i barındıran sunucu, `Access-Control-Allow-Origin` başlığını sayfanın origin'ine ya da herkese açık bir dosya için `*` olarak ayarlayıp yanıt vermeli. Testimizde yalnızca bu başlık `Script error.` mesajını tam mesaja çevirdi.

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

### Dosyanın hâlâ yüklendiğini kontrol et

`crossorigin` ayarlıyken ve başlık yokken tarayıcı dosyayı engeller ve script hiç çalışmaz. Konsolda `blocked by CORS policy` ve `net::ERR_FAILED` görünür, `script` öğesi de `error` olayını tetikler.

Çıktı

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

### Ya da script'i kendi origin'inden sun

Sayfanın kendi origin'inden gelen bir script hatalarını hiç susturmaz. Dosyayı uygulamanla birlikte paketle ya da kendi alan adın üzerinden proxy'le, başlık gerekmez.

## Hâlâ gelen susturulmuş hataları ele al

### Önce say, sonra script'i bul

`Script error.` çözülecek hiçbir şey taşımaz. Her biri, başka bir origin'deki bir script'in hata fırlattığı anlamına gelir. `crossorigin` olmayan etiketleri bul ve her sayfada yüklenenlerden başla.

### Gerçek mesajı konsolda oku

Tarayıcı, dinleyicilerin için sustursa bile tam hatayı konsola yazar. Testimizde `window.onerror` `Script error.` alırken konsolda `Uncaught Error: Keg is empty` göründü.

### Üçüncü taraf etiketlerle ne yapacağına karar ver

CORS başlığı olmayan bir sohbet widget'ı ya da analitik etiketi sana 2 seçenek bırakır. Olduğu gibi tut ve susturulmuş hataları kabul et, ya da `crossorigin` ekle ki eksik başlık etiketi engellesin ve başarısız yükleme olarak görünsün.

## Test ederken gördüklerimiz

Hata fırlatan 1 script'i, `throw new Error("Keg is empty: no beer left for order 42");`, 2 yerel sunucuya koyduk. Sayfa, `@logbrew/browser` 0.1.21 kurulu Chromium 152'de `http://127.0.0.1:4873` adresinde çalıştı, `http://127.0.0.1:4874` adresindeki ikinci sunucu da CDN rolünü üstlendi. Script'i 4 şekilde yükledik ve her seferinde `window` üzerindeki `error` olayını okuduk.

Sayfanın kendi origin'inden olay `Uncaught Error: Keg is empty: no beer left for order 42` mesajını, `/throws.js` dosyasını, satır 1'i, sütun 7'yi ve stack trace'i olan bir `Error` nesnesini taşıdı. `crossorigin` olmadan diğer origin'den olay `Script error.` mesajını, boş bir dosya adını, satır 0'ı, sütun 0'ı taşıdı ve `Error` nesnesi yoktu. Konsol yine de tam mesajı yazdı.

CDN'de `crossorigin="anonymous"` ve `Access-Control-Allow-Origin: *` varken olay yine tam ayrıntıları taşıdı. Öznitelik varken ve başlık yokken tarayıcı dosyayı engelledi, script hiç çalışmadı ve `script` öğesi `error` olayını tetikledi.

## Tarayıcı mesajı neden gizler

HTML Standardı, sayfanın CORS olmadan başka origin'lerden getirdiği script'lerin hatalarını susturur. Algoritması, yanıt CORS-cross-origin olduğunda hataları susturulmuş olarak işaretler ve hatayı URL olmadan, satır 0, sütun 0 ve hata nesnesi olmadan `Script error.` olarak bildirir.

Tarayıcı, cross-origin bir script'in hata metnini o script'in verisi sayar, bu yüzden sayfa bundan hiçbir şey alamaz. MDN'in `crossorigin` sayfası aynı şeyi 1 satırda söyler. Böyle script'ler için `window.onerror` üzerinden hata loglamaya erişim sınırlıdır.

whatwg/html#2440, ayrıntıları CORS olmadan almanın bir yolunu istedi. Temmuz 2024'te, tarayıcıların aynı durumları aynı şekilde susturmadığını bildiren whatwg/html#10514'ün açıldığı gün kapatıldı. O kayıt hâlâ açık.

## LogBrew ne kaydeder

Tam ayrıntılarla tarayıcı SDK'sı, `/throws.js` için satır 1, sütun 7'de bir stack frame'i, kaynak yolu ve `browser.error:Error:/throws.js` gruplama anahtarı olan `Browser error: Error` adlı 1 sorun gönderdi. Hata fırlatan her script kendi sorununu alır.

Susturulmuş hatada sorunun adı aynıydı, stack frame'i yoktu, satır 0, sütun 0 ve gruplama anahtarı `browser.error:Error` idi. Susturulmuş hatalar bu 1 sorunu paylaşır, bu yüzden sayısı henüz göremediğin hata sayısını söyler.

İki olay da sayfa yolunu, `macOS` üzerinde `Chromium 152` çalışma zamanını ve bir `page_view` breadcrumb'ını taşıdı. İkisi de mesaj metnini taşımadı. SDK onu `redacted` olarak işaretledi.

## Sık sorulan sorular

### Script error. JavaScript'te ne anlama gelir?

Başka bir origin'deki bir script hata fırlattı ve dosya CORS ile yüklenmediği için tarayıcı ayrıntıları sayfadan gizledi. Script'in kendisi çalıştı.

### Script error. neden satır 0 ve stack olmadan gelir?

HTML Standardı bir hatayı susturduğunda mesajı, dosyayı, satırı, sütunu ve hata nesnesini değiştirir. Geriye yalnızca `Script error.` dizesi kalır.

### Script error. script'in yüklenemediği anlamına mı gelir?

Hayır. Yüklenemeyen bir script, `script` öğesinde `error` olayını tetikler ve hiç çalışmaz. `Script error.`, script'in çalışıp hata fırlattığı anlamına gelir.

### Sunucuyu değiştirmeden mesajı görebilir miyim?

Tarayıcı konsolunda evet. Hata takibinde hayır. Sayfanın etikette `crossorigin`, sunucudan CORS başlığı ya da script'in kendi origin'inde olması gerekir.

### Script error. mesajını hata takibimden filtrelemeli miyim?

Onun yerine say. Bu sayı kaç hatayı göremediğini söyler ve her cross-origin script CORS ile yüklendiğinde 0'a düşer.

## Henüz göremediğin hataları say

LogBrew tarayıcı SDK'sı her susturulmuş hatayı 1 sorunda tutar ve her gerçek hataya dosyasını, satırını ve stack trace'ini verir. Cömert ücretsiz planla başla, kart gerekmez.

[Ücretsiz başla](https://logbrew.co/tr)

## Kaynaklar

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

## Diğer JavaScript hata çözümleri

- [Failed to fetch hatasını çöz ve 3 nedenini birbirinden ayır](https://logbrew.co/tr/errors/failed-to-fetch)
- [Yeniden ürettiğimiz JavaScript hataları ve her birinin çözümü](https://logbrew.co/tr/errors)
