如何修復 WordPress 中的“響應不是有效的 JSON 響應”消息

已發表: 2022-08-09

由於 Gutenberg WordPress 編輯器成為默認頁面編輯器,許多 WordPress 用戶開始在他們的網站上看到“響應不是有效的 JSON 響應”錯誤消息,試圖更新帖子或上傳媒體。 雖然切換回經典編輯器可以立即解決問題並且可能是一個很好的臨時解決方案,但 WordPress 無效 JSON 錯誤表明 REST API 存在問題,WordPress 絕對依賴該 API 才能正常工作。

在本指南中,您將了解 Gutenberg 編輯器如何與 REST API 一起使用,以及如何以全面的分步方式修復 WordPress 中的“響應不是有效的 JSON 響應”消息。

Gutenberg 如何使用 REST API 和 JSON?

Gutenberg WordPress 編輯器,也稱為塊編輯器,是一個前端應用程序,它使用 REST API 在服務器和用戶界面之間傳遞數據。 使其成為 WordPress 核心內置的默認選項,WordPress 完全用 Gutenberg 取代了經典編輯器,朝著完整的站點編輯邁出了一大步。

Gutenberg WordPress 編輯器是一個客戶端應用程序,這意味著它在用戶的瀏覽器中運行,並且無法直接訪問存儲所有帖子和頁面的 WordPress 數據庫。 因此,塊編輯器需要一種與服務器通信的方式來發送內容更新。 REST API 確保客戶端-服務器通信,並允許 Gutenberg 通過發送和接收 JSON 對象的數據來更新帖子和頁面。

JSON 代表 JavaScript Object Notation,WordPress 使用它在 WordPress REST API 定義的模式中創建內容表示。 每當您使用 Gutenberg 編輯頁面或帖子並單擊“更新”按鈕以保存您所做的所有更改時,塊編輯器都會向服務器發送請求並期望 JSON 格式的響應。

響應不是有效的 JSON 響應

“響應不是有效的 JSON 響應”錯誤是什麼意思?

當客戶端-服務器通信中斷或 Gutenberg 無法到達服務器時,WordPress 會將收到的消息識別為無效的 JSON 響應並顯示“響應不是有效的 JSON 響應”。

當您嘗試從塊編輯器更新或發布帖子或上傳媒體時,WordPress 無效 JSON 響應錯誤可能會出現在您的網站上。 通過顯示錯誤消息,WordPress 會通知您要執行的任務失敗。 因此,在恢復正常的客戶端-服務器通信之前,您所做的更新不會保存到服務器。

“響應不是有效的 JSON 響應”WordPress 中的消息

“響應不是有效的 JSON 響應”錯誤背後的 5 大問題以及如何解決這些問題

WordPress 中的“響應不是有效的 JSON 響應”錯誤消息背後有 5 個主要問題:

  1. WordPress 網站地址設置不正確
  2. 損壞的永久鏈接
  3. SSL 錯誤和競爭性重定向
  4. 阻止請求的安全解決方案
  5. 插件衝突

不正確的 WordPress 網站地址設置

錯誤配置的 WordPress 地址和站點地址設置將中斷 REST API 的正確工作,導致您的 WordPress 網站上出現“響應不是有效的 JSON 響應”消息。 當 URL 尚未更新以反映新域名時,通常會在網站遷移或克隆後看到這兩個設置都不正確。

WordPress 使用 WP_HOME 和 WP_SITEURL 常量來識別您網站的地址。 WordPress 地址設置是指 WordPress 安裝的位置,而站點地址表示訪問者需要在瀏覽器地址欄中鍵入以打開您的站點的 URL。

大多數情況下, WP_HOME 和 WP_SITEURL 常量都具有相同的值,並且是從 WordPress 數據庫的 wp_options 表中自動加載的,它們被存儲為 siteurl 和 home 選項。 在 wp_options 的前兩行可以找到 siteurl 和 home。 由於這兩個設置都代表統一資源定位器,因此需要包含正確的協議。

網站網址

WordPress 地址和站點地址也可用於在您的網站上強制使用 HTTPS,這在嘗試調查競爭重定向時經常會被忽略。 在 siteurl 和 home 中指定的協議不正確可能會導致許多問題,包括“重定向過多”錯誤。

如何解決

有多種方法可以設置您的 WordPress 地址和站點地址設置,包括修改您的 wp-config.php 文件和 WP CLI。 但最簡單的方法是使用 WordPress 管理界面。

從 WordPress 儀表板打開常規設置菜單,然後檢查 WordPress 地址和站點地址設置。 確保他們使用正確的網站地址和協議。 如果您在服務器上安裝了有效的 SSL 證書,請使用 HTTPS 來確保安全連接。 如果需要,更正這些值,然後單擊“保存更改”按鈕。

WordPress 常規設置

損壞的永久鏈接

WordPress 永久鏈接是為網站上所有帖子和頁面配置的唯一 URL。 損壞的永久鏈接將不允許您從塊編輯器保存對帖子和頁面的任何更新,並會導致在您的網站上看到“響應不是有效的 JSON 響應”。 此外,您將在所有網站頁面上看到“404 Page Not Found”錯誤消息,因此在您修復永久鏈接結構之前沒有內容可用。

在此服務器上找不到請求的 URL

如何解決

瀏覽您的網站以查看所有帖子和頁面是否正確加載。 如果您收到“未找到”錯誤消息,請檢查 WordPress 網站文檔根目錄中的 .htaccess 文件,以確保存在默認重定向規則。

如果缺少默認代碼,請手動添加並保存文件。 或者,您可以通過導航到設置 > 永久鏈接並單擊保存更改按鈕,從 WordPress 管理區域重新保存您的永久鏈接結構。

重寫引擎

SSL 錯誤和競爭重定向

競爭性重定向、混合內容錯誤或其他 SSL 問題可能是在您的網站上看到“響應不是有效的 JSON 響應”WordPress 錯誤或“ERR_TOO_MANY_REDIRECTS”消息的原因。 讓我們回顧一下每種情況,以了解它如何影響您的 WordPress 網站的功能。

SSL 錯誤和混合內容

如果您的 SSL 證書已過期或未正確安裝,您將無法使用 HTTPS。 如果您的 WordPress 網站配置為使用安全連接,並且存在重定向以強制使用 HTTPS,則會導致問題。

混合內容是 SSL 最常見的問題之一,可以定義為基礎 HTML 文件通過 HTTPS 加載但其他資源(包括圖像、Javascript 或 CSS 文件)通過不安全的連接傳遞給訪問者的情況。 如果存在混合內容,您的瀏覽器將顯示連接不完全安全。 通過包含在 HTTPS 網頁中的 HTTP 提供內容可能會導致在塊編輯器中工作時看到 WordPress 無效 JSON 響應錯誤。

競爭或不正確的重定向

競爭性或不正確的重定向可能會導致您的 WordPress 網站上出現重定向循環,或者在使用塊編輯器時中斷客戶端-服務器通信,從而導致“響應不是有效的 JSON 響應”WordPress 錯誤。 具有競爭性重定向意味著至少有兩個重定向,一個嘗試強制 HTTPS,另一個重定向回 HTTP。

您可能遇到的最常見問題之一是在源服務器上配置的重定向與使用的內容交付網絡應用的重定向之間存在衝突。 例如,CloudFlare 提供了三種加密模式——關閉、靈活和完全。 選擇模式,您可以選擇 CDN 如何從您的服務器請求內容並將其交付給您的網站訪問者。

導致問題的典型情況(包括 WordPress 中的“響應不是有效的 JSON 響應”消息)是在安裝 Cloudflare edge SSL 時在服務器級別強制使用 HTTPS,這僅允許在瀏覽器和 Cloudflare 之間進行加密。 在這種情況下,在源服務器上配置的強制 HTTPS 重定向會產生問題。

如何解決

避免任何 SSL 錯誤和競爭性重定向的最佳方法是安裝有效的 SSL,並在使用內容交付網絡時確保端到端加密。 請記住,您將需要安裝兩個證書——一個在您的源服務器上,另一個由 CDN 提供。

SSL/TLS

檢查您的 WordPress 網站是否具有有效的 SSL 證書,如果之前的證書已過期,請安裝新的證書。 如果您的網站即使安裝了有效的 SSL 證書也顯示為不完全安全,則混合內容是在 WordPress 中看到“響應不是有效的 JSON 響應”消息的最可能原因。 您可以通過使用 WP CLI 在 WordPress 數據庫上執行搜索替換來修復混合內容警告,以刪除任何剩餘的 HTTP 引用,或者使用像真正簡單的 SSL 這樣的插件來為您完成它。

您還可以暫時暫停 CDN,以查看連接失敗的具體位置。 如果您在禁用 CDN 的情況下在 Gutenberg 保存更新後沒有遇到任何問題,則說明 CDN 與源服務器通信的方式存在問題,或者請求可能被與您的內容交付網絡結合使用的 Web 應用程序防火牆阻止。

阻止 WordPress 請求的安全解決方案

使用的安全解決方案,包括 WordPress 安全插件、由內容交付網絡實現的 Web 應用程序防火牆規則,或像 ModSecurity 這樣的服務器端 WAF,可能會中斷正確的客戶端-服務器通信,導致“響應不是有效的 JSON 響應”消息WordPress。

每個在應用程序級別工作的安全解決方案都提供一組規則,檢查發送到您的 WordPress 網站的每個請求,以最大限度地減少進入 Web 服務器的惡意請求的數量。 一旦觸發了某個規則,請求就會被阻止並返回錯誤消息,從而導致顯示 WordPress 無效 JSON 響應錯誤。

如何解決

追踪問題的最佳方法是檢查服務器和 WAF 日誌以查看請求是否實際被阻止,其中一種安全解決方案是導致顯示“響應不是有效的 JSON 響應”錯誤消息的原因。 如果您做不到,請停用您的 WordPress 安全插件和 Cloudflare WAF 等任何其他解決方案,看看它是否解決了問題。

如果是這樣,請聯繫插件支持團隊以幫助確定導致規則的問題,或者如果有選項,請自行檢查規則列表。 如果您仍然無法從塊編輯器保存任何更新或上傳媒體,則服務器端安全解決方案可能有問題。 您的網絡託管支持團隊可以通過將針對您的 IP 地址或網站 URL 觸發的規則列入白名單來幫助您解決問題。

確保您使用的是一個出色的 WordPress 安全插件,該插件具有管理的規則集,可以很好地防止惡意請求,但同時不要打擾您執行網站管理任務。 iThemes Security Pro 主動監控可疑活動並幫助您保護 WordPress 網站中最易受攻擊的部分。 啟用站點掃描功能後,您可以確定 - 沒有惡意軟件會被忽視。

插件衝突

對於 WordPress,插件衝突是發生錯誤的最常見原因之一,包括 REST API 問題以及在嘗試更新帖子和頁面或上傳數據時顯示“響應不是有效的 JSON 響應”。 一次激活的插件越多,代碼不兼容的可能性就越高,在大多數情況下不會被忽視。

如何解決

停用所有插件以查看是否可以解決問題。 如果您不再看到“響應不是有效的 JSON 響應”錯誤消息,並且從塊編輯器進行的所有帖子更新都已正確保存,請一一重新激活插件以識別導致問題的插件。

您可能會注意到某個插件最近已更新,因此您可能需要回滾更新以恢復到正常工作的版本。 檢查插件用戶的支持請求,看看其他人是否遇到了同樣的問題。 該問題可能會在下一個版本中得到解決,或者有一個已知的修復程序可以讓您繼續使用該插件。

iThemes 安全版本管理允許您自動更新 WordPress、插件和主題以利用新功能,免受已知漏洞的影響,並避免對 WordPress 網站的正常工作造成任何干擾。

更新插件

如何通過 3 個步驟修復無效的 JSON 響應 WordPress 錯誤

由於各種問題可能導致您的 WordPress 網站上出現“響應不是有效的 JSON 響應”錯誤消息,因此很難對其進行故障排除並了解從哪裡開始。 不要急於應用本指南中列出的所有修復。 請按照以下步驟一勞永逸地修復 WordPress 無效 JSON 響應錯誤。

步驟 1. 識別任何最近的更改

首先對您的網站進行基本檢查。 查看上次 WordPress 核心和插件更新的執行時間,並考慮自上次您能夠從塊編輯器保存內容更新並將媒體上傳到您的網站以來,您的網站是否發生了任何變化。

您可能意識到最近更新了插件,向您的 Web 應用程序防火牆添加了一組新規則,或者您必須從備份中恢復您的網站,因為它已被黑客入侵。 了解導致“響應不是有效的 JSON 響應”錯誤消息的確切原因將極大地幫助您了解從哪裡開始並節省您的時間和精力。

第 2 步。檢查您的 WordPress 網站

要修復 WordPress 中的“響應不是有效的 JSON 響應”錯誤消息,需要限制搜索範圍。 本文前面部分中描述的大多數問題將導致更嚴重的問題,而不僅僅是無法在 Gutenberg 中保存內容更新或上傳媒體。

瀏覽您的網站頁面

瀏覽您的網站以查看您是否可以加載所有網頁,並且您的瀏覽器在所有網頁上都顯示連接是完全安全的。 因此,您可以輕鬆確定 SSL、您的永久鏈接結構或重定向是否存在任何問題。 損壞的永久鏈接將導致網頁上顯示“未找到”錯誤消息,衝突的重定向可能導致看到“ERR_TOO_MANY_REDIRECTS”。

檢查您的 WordPress 地址設置和 SSL

檢查您的 WordPress 地址設置,包括 URL 中使用的協議,並使用 SSL 檢查器確保您的 SSL 證書有效並且受到所有瀏覽器的信任。 如果您使用的是 CDN,請檢查您的加密設置並確保您在服務器上設置的重定向不會與您的內容交付網絡強制執行的內容衝突。

步驟 3. 修復 WordPress 中的“響應不是有效的 JSON 響應”消息

如果您仔細檢查了您的 WordPress 網站並記錄了最近對其進行的所有更新,您將能夠確定在使用塊編輯器時出現“響應不是有效的 JSON 響應”錯誤消息的原因或上傳媒體。

除非您的永久鏈接結構損壞或有任何其他嚴重問題導致您的網站出現其他錯誤,如果您絕對需要盡快發布某個帖子,您可以暫時切換到經典編輯器。 安裝經典編輯器插件,它將在激活時替換塊編輯器。 發布帖子後,您可以恢復故障排除過程。

按照本指南上一部分中包含的說明解決您發現的問題。 如果您的 WordPress 站點地址設置正確,永久鏈接按預期工作,並且您已排除 SSL、混合內容和競爭重定向的所有問題,請停用您的安全解決方案。 如果沒有幫助,請停用所有插件以查看插件衝突是否有問題。

如果沒有任何幫助確定問題,並且您不確定是什麼導致您的網站上出現“響應不是有效的 JSON 響應”錯誤消息,請聯繫您的網絡託管支持團隊尋求幫助。 您可能需要第二雙完全正常的眼睛。 此外,支持管理員將能夠檢查服務器日誌,從而加快故障排除過程。

結論

WordPress 塊編輯器是一個客戶端應用程序,它使用 REST API 與服務器通信並發送數據。 客戶端-服務器通信的任何中斷都會導致錯誤,包括“響應不是有效的 JSON 響應”。 WordPress 無效 JSON 響應錯誤可能由不同的問題引起,其中最常見的是不正確的 WordPress 地址設置、損壞的永久鏈接結構、SSL 錯誤和衝突的重定向。

有時,WordPress 站點可能會被安全插件或用作 Web 應用程序防火牆的其他解決方案阻止。 最大限度地減少從管理儀表板發送的請求被阻止的可能性並節省故障排除時間同時完全免受惡意流量的最佳方法是選擇正確的安全軟件。

安全性和可用性之間只有一線之隔,但您無需在兩者之間做出選擇。 iThemes Security Pro 是一個 WordPress 安全插件,可讓您專注於日常任務,並確保您的 WordPress 網站免受所有已知漏洞和安全威脅的影響。

獲得獎勵內容:WordPress 安全指南
點擊這裡