Bu hata JSON parser’ın metin bittiğinde hâlâ kapanış karakteri veya değer beklediğini gösterir. Boş response, HTTP 204, eksik süslü parantez, yarım string, timeout, PHP exit veya gövdenin daha önce okunmuş olması temel nedenlerdir.
SyntaxError: Unexpected end of JSON input
JSON.parse: unexpected end of data
Unexpected end of data at line 1 column 1Bu hata JSON parser’ın metin bittiğinde hâlâ kapanış karakteri veya değer beklediğini gösterir. Boş response, HTTP 204, eksik süslü parantez, yarım string, timeout, PHP exit veya gövdenin daha önce okunmuş olması temel nedenlerdir.
Bir SyntaxError sonraki tüm scriptleri durdurabilir; önce Console’daki ilk kırmızı kaydı çözün.
Source map, pretty print ve Network URL ile hatanın kaynak mı build mi olduğunu belirleyin.
node --check, ESLint, TypeScript veya JSON doğrulayıcıyla sorunu küçük bir alana indirin.
PHP render, API body, CDN cache ve module loader sonucunu production cevabında kontrol edin.
Boş body’yi geçerli JSON kabul etmeyin.
Anlamı: Boş metin JSON değildir.
Muhtemel neden: API boş string döndürüyor.
Anlamı: Gövdesiz cevap JSON olarak okunuyor.
Muhtemel neden: DELETE/PUT endpoint 204 dönüyor.
Anlamı: JSON metni tamamlanmamış.
Muhtemel neden: Manuel string üretimi veya kesilen çıktı.
Anlamı: Handler cevap üretmeden sonlanıyor.
Muhtemel neden: Yetki, validation veya erken return.
Anlamı: Gövde daha önce text/json olarak okundu.
Muhtemel neden: Aynı response iki kez tüketiliyor.
Anlamı: Cevap yarım kesiliyor.
Muhtemel neden: Upstream timeout veya bağlantı kapanması.
Anlamı: PHP veri kodlanamadı.
Muhtemel neden: Geçersiz UTF-8 veya recursive veri.
Anlamı: Sonuç yokken API body standardı tanımsız.
Muhtemel neden: Sözleşme eksik.
Bu ifadeyle eşleşen kayıt bulunamadı.
curl -sS -D - https://example.com/api/data -o /tmp/api-body && wc -c /tmp/api-body && head -c 300 /tmp/api-bodyHeader, gövde boyutu ve başlangıcını gösterir.
python3 -m json.tool < /tmp/api-bodyKaydedilen body’nin tamamlanmış JSON olup olmadığını kontrol eder.
curl -sSI https://example.com/api/data | grep -iE 'content-length|transfer-encoding|content-type|^HTTP'Cevap uzunluğu ve transfer tipini gösterir.
node -e "fetch('https://example.com/api/data').then(async r=>console.log(r.status,r.headers.get('content-type'),JSON.stringify(await r.text()))).catch(console.error)"Node üzerinden ham cevap ve status bilgisini gösterir.
grep -RniE 'json_encode|JsonException|Malformed UTF-8' /var/log/php* /var/log/nginx 2>/dev/null | tail -n 80JSON üretimiyle ilgili sunucu hatalarını arar.
curl -sS -o /dev/null -w 'HTTP:%{http_code} Size:%{size_download}\n' -X DELETE https://example.com/api/item/1Gövdesiz endpoint’in status ve body boyutunu gösterir.
const data = JSON.parse('');const data = text.trim() === '' ? null : JSON.parse(text);const data = await response.json();const data = response.status === 204 ? null : await response.json();echo '{"success":true,"data":' . $data . '}';echo json_encode(['success'=>true,'data'=>$data], JSON_THROW_ON_ERROR);console.log(await response.text());
const data = await response.json();const text = await response.text();
console.log(text);
const data = text ? JSON.parse(text) : null;Chrome DevTools Console, Sources ve Network panelleriyle gerçek dosya, satır ve sunucu cevabı birlikte incelenmelidir.
Node sürümü, package.json module tipi, derleme çıktısı ve çalıştırılan gerçek dosya aynı module sistemine uygun olmalıdır.
PHP uyarıları, tema HTML’i, yönlendirme ve çift script yükleme JavaScript hatası gibi görünebilir.
JavaScript parser, JSON parser veya module loader beklenen sözdizimini bulamadığında oluşur. Hata mesajı gerçek nedenin bulunduğu satırdan sonraki token’ı işaretleyebilir.
Satır çoğu zaman parser’ın hatayı fark ettiği yerdir. Eksik tırnak, parantez veya virgül bir önceki satırda olabilir.
Source map ve DevTools pretty print kullanın; asıl kaynak dosyayı düzeltip yeniden build alın.
PHP warning, HTML hata sayfası veya kaçış yapılmadan basılan veri JavaScript/JSON sözdizimini bozabilir.
Çoğu parser hatasını bulur; ancak yanlış sunucu cevabı, çift script yükleme ve runtime module yapılandırması ayrıca incelenmelidir.
Deploy, minify, cache, paket güncellemesi, Node sürümü, PHP çıktısı veya yarım yüklenen dosya davranışı değiştirmiş olabilir.
Rehber teşhis ve güvenli düzeltme adımları sunar; değişiklikler staging ortamında test edilip Git ile geri alınabilir tutulmalıdır.
Console, Fetch/AJAX, PHP JSON cevapları, ES Modules, TypeScript build ve WISECP script yükleme sorunlarını üretim yapısını bozmadan inceliyoruz.