WPHizmet

“Yanıt Geçerli Bir JSON Yanıtı Değil” Hatası (Güncelleme Başarısız)

Yayınlandı:
Son teknik kontrol:
1 dk okuma
İşlev bozukWordPress
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

  1. Tarayıcının geliştirici araçlarını açın

    F12 → Ağ (Network) sekmesi. Düzenleyicide yeniden “Güncelle”ye basın.

  2. 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.

  3. 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 / belirtiOlası nedenÇözüm
404Kalıcı bağlantı kuralları bozuk, .htaccess eksikAyarlar → Kalıcı bağlantılar → hiçbir şey değiştirmeden Kaydet
Yönlendirme veya karışık protokolSite adresi http, site https ile açılıyor (veya www farkı)Ayarlar → Genel’deki iki adresi sitenin gerçek adresiyle eşleştirin
403Güvenlik eklentisi, ModSecurity veya CDN güvenlik duvarı REST API’yi engelliyorGü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ıyorWP_DEBUG_DISPLAY’i kapatın, uyarıyı üreten eklentiyi bulup güncelleyin
401 / rest_cookie_invalid_nonceOturum süresi dolmuşSayfayı yenileyip yeniden giriş yapın
500PHP ö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.

Sık sorulan sorular

Kalıcı bağlantıları kaydettim ama düzelmedi.
O zaman sorun büyük ihtimalle yeniden yazma kuralı değildir. Ağ sekmesindeki başarısız isteğin durum koduna bakın: 403 güvenlik engelini, 500 PHP hatasını, yanıtta HTML ise çıktıyı bozan bir eklentiyi gösterir.
SSL kurduktan sonra başladı.
Ayarlar → Genel’deki WordPress ve Site adresi hâlâ http ile başlıyor olabilir. İstekler farklı protokole gittiğinde tarayıcı engeller veya yönlendirme olur. İki adresi https ile güncelleyin.
Cloudflare kullanıyorum, ilgisi olabilir mi?
Olabilir. Güvenlik duvarı kuralları veya bot koruması /wp-json/ isteklerini engelleyebilir. Cloudflare güvenlik olayları ekranında engellenen istekleri görebilir ve oturum açmış yöneticilerin isteklerini etkilemeyecek biçimde kuralı ayarlayabilirsiniz.

Kaynaklar ve teknik referanslar

Bu hatayı çözemediyseniz

İlgili içerikler