
在 WordPress 的區塊編輯器裡按下「更新」或「發佈」,畫面上方卻跳出紅色的錯誤:
更新失敗。回應不是有效的 JSON 回應。
(舊版的中文翻譯是「更新時發生錯誤。無效的 JSON 回應。」,意思一樣。)
這個訊息的意思是:編輯器把文章送給網站主機,預期拿回一段格式正確的資料(JSON),結果拿回來的是別的東西——可能是錯誤頁面、被防火牆擋下的頁面,或是一段 PHP 錯誤訊息。所以問題通常不在文章本身,而是在網站設定、外掛或主機。
下面依照最常見的順序排列,建議從第一項開始檢查。
原因一:固定網址(Permalink)設定跑掉
最常見、也最好解決。到後台「設定 → 固定網址」,什麼都不用改,直接按一次「儲存設定」。WordPress 會重新產生網址規則,很多時候這樣就好了。
如果還是不行,檢查網站根目錄的 .htaccess 檔案裡有沒有 WordPress 的標準設定:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress主機是 Nginx 的話沒有 .htaccess,要請主機商確認網站設定裡有 try_files $uri $uri/ /index.php?$args; 這一行。
原因二:網址的 http、https 不一致
到「設定 → 一般」,看「WordPress 位址(網址)」和「網站位址(網址)」:
- 兩個網址要完全一樣。
- 網站已經安裝 SSL 憑證的話,兩個都要是
https://開頭。
常見的狀況是網站換成 https 之後,這兩個欄位還是 http,編輯器送出去的資料被轉址,就拿不到正確的回應。
原因三:外掛衝突
安全性外掛、快取外掛、防火牆外掛最常造成這個問題。先把所有外掛停用,再試一次更新:
- 可以更新了 → 一個一個重新啟用外掛,每啟用一個就試一次,找出是哪一個造成的。
- 還是不行 → 暫時換成預設主題(例如 Twenty Twenty-Four)再試,排除主題的問題。
網站已經上線、不方便停用全部外掛的話,可以裝官方的 Health Check & Troubleshooting 外掛,它的「疑難排解模式」只會對你自己停用外掛,訪客看到的網站不受影響。
原因四:REST API 被擋住
區塊編輯器是透過 WordPress 的 REST API 存檔的。到後台「工具 → 網站健康狀態」,如果出現「REST API 發生錯誤」之類的提示,就是這裡被擋了。常見的兇手:
- 安全性外掛裡有「停用 REST API」的選項被打開了
- 主機的防火牆(例如 ModSecurity)把文章內容誤判成攻擊,常發生在文章裡有程式碼、
<script>或特殊語法的時候 - Cloudflare 之類的 CDN 防火牆規則
也可以直接在瀏覽器打開 https://你的網址/wp-json/,正常應該會看到一大段文字資料;如果看到錯誤頁或被擋的頁面,就是 REST API 有問題,把錯誤畫面截圖給主機商最快。
原因五:主機或 PHP 出錯
PHP 版本太舊、記憶體不足,或某個外掛產生錯誤訊息,都會讓回應變成非 JSON 的內容。先打開 WordPress 的錯誤記錄,在網站根目錄的 wp-config.php 找到 /* That's all, stop editing! */ 這行,在它上面加入:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );再按一次更新,錯誤訊息會寫進 wp-content/debug.log。找到原因後,記得把 WP_DEBUG 改回 false。
記憶體不足的處理方式,可以參考修改 WordPress 的 PHP memory_limit。
原因六:上傳的檔案有問題
如果是在上傳圖片或檔案時出現這個錯誤,通常是檔名有特殊符號、檔案超過主機的上傳大小限制,或是主機不允許該檔案格式。先把檔名改成英文、數字和連字號,圖片壓縮後再上傳試試。
最有效的一招:看瀏覽器裡的真正錯誤
上面都檢查過還是找不到原因,可以直接看主機實際回傳了什麼:
- 在編輯器頁面按 F12 打開開發者工具,切到「Network(網路)」分頁。
- 再按一次「更新」。
- 找到紅色、網址裡有
wp-json的那一筆,點開看「Response(回應)」。
回應裡通常會直接寫出錯誤原因,例如 PHP 錯誤訊息、防火牆的阻擋頁,或是 403、500 之類的狀態碼。把這個畫面截圖給主機商或網站工程師,問題往往一下就能找到。
裝 Classic Editor 外掛可以解決嗎?
這篇文章早期的版本建議安裝 Classic Editor(傳統編輯器)外掛。它確實能讓你暫時繼續編輯,因為傳統編輯器不是透過 REST API 存檔的,但這只是繞過問題,真正的原因還在。其他同樣依賴 REST API 的功能(例如部分外掛、手機 App)還是會出錯,建議還是依照上面的順序找出根本原因。
延伸閱讀
- WordPress 出現「You don't have permission to access」怎麼辦?403 錯誤的 6 個原因與解法
- .htaccess 用法大全:轉址、HTTPS、安全防護、壓縮與快取常用設定(WordPress 適用)
網站三天兩頭出錯、外掛越裝越多卻越來越慢,往往是網站架構本身該整理了。正威網路行銷提供基隆網頁設計與網站維護託管服務,也服務台北與全台客戶,網站的疑難雜症歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。