“Yanıt Geçerli Bir JSON Yanıtı Değil” Hatası (Güncelleme Başarısız)
- Yayınlandı:
- Son teknik kontrol:
Updating failed. The response is not a valid JSON response.Belirtiler
- Yazı veya sayfa kaydedilirken “Güncelleme başarısız” ya da “Yayımlama başarısız” uyarısı
- “Yanıt geçerli bir JSON yanıtı değil” mesajı
- Görsel eklerken veya blok eklerken benzer hata
- Klasik düzenleyicide sorun yok, blok düzenleyicide var
Kısa cevap
Bu hata, blok düzenleyicinin yazıyı kaydetmek için WordPress REST API’sine gönderdiği isteğe JSON yerine başka bir şey (HTML hata sayfası, PHP uyarısı veya hiç yanıt) döndüğünü söyler. En sık nedenler kalıcı bağlantı kurallarının bozulması, site adresindeki http/https veya www uyumsuzluğu, REST API’yi engelleyen bir güvenlik eklentisi ya da sunucu güvenlik duvarı ve yanıtın başına PHP uyarısı basan bir eklentidir. Tarayıcının Ağ sekmesinde başarısız isteğin yanıtı nedeni doğrudan gösterir.
Önemli noktalar
- Düzenleyici kaydetmek için /wp-json/ adresindeki REST API’yi kullanır; o istek bozulursa bu hata çıkar.
- Kalıcı bağlantıları yeniden kaydetmek çoğu vakada yeniden yazma kurallarını onarır.
- Site adresi ayarlarındaki http/https ve www farkı istekleri bozabilir.
- Güvenlik duvarları, içerikteki kod parçalarını saldırı sanıp isteği engelleyebilir.
- Klasik düzenleyiciye geçmek hatayı gizler, çözmez.
Nedenini bulmanın en hızlı yolu
Tarayıcının geliştirici araçlarını açın
F12 → Ağ (Network) sekmesi. Düzenleyicide yeniden “Güncelle”ye basın.
Kırmızı isteği bulun
Adresi /wp-json/wp/v2/posts/… veya /pages/… ile biten başarısız isteğe tıklayın.
Durum koduna ve yanıta bakın
404 ise yeniden yazma kuralı, 403 ise güvenlik engeli, 500 ise PHP hatası; yanıt gövdesinde HTML veya “Warning:” satırı görüyorsanız çıktıyı bozan bir eklenti vardır.
Araçlar → Site Sağlığı sayfası da REST API’ye erişilemiyorsa bunu kritik sorun olarak gösterir. Ayrıca tarayıcıda alan-adiniz.com/wp-json/ adresini açın: JSON metni görmelisiniz; HTML sayfa veya hata görüyorsanız sorun REST API’dedir.
Nedenler ve çözümler
| Durum kodu / belirti | Olası neden | Çözüm |
|---|---|---|
| 404 | Kalıcı bağlantı kuralları bozuk, .htaccess eksik | Ayarlar → Kalıcı bağlantılar → hiçbir şey değiştirmeden Kaydet |
| Yönlendirme veya karışık protokol | Site adresi http, site https ile açılıyor (veya www farkı) | Ayarlar → Genel’deki iki adresi sitenin gerçek adresiyle eşleştirin |
| 403 | Güvenlik eklentisi, ModSecurity veya CDN güvenlik duvarı REST API’yi engelliyor | Güvenlik günlüğüne bakın; kuralı hosting veya CDN tarafında istisna olarak tanımlayın |
| 200 ama yanıtta HTML/uyarı | Bir eklenti PHP uyarısını çıktıya basıyor | WP_DEBUG_DISPLAY’i kapatın, uyarıyı üreten eklentiyi bulup güncelleyin |
| 401 / rest_cookie_invalid_nonce | Oturum süresi dolmuş | Sayfayı yenileyip yeniden giriş yapın |
| 500 | PHP ölümcül hatası | Hata günlüğünü okuyun; eklentileri tek tek devre dışı bırakın |
Kalıcı bağlantıların neden bozulduğu ve .htaccess dosyasının rolü için WordPress 404 hatası sayfasına; REST API’nin ne olduğu için REST API terimine bakabilirsiniz.