如何修复WordPress网站提示’The Invalid JSON Error’错误

错误类型:
其他错误
错误名称:
无效JSON错误
英文名称:
The Invalid JSON Error
错误描述:
无法从服务器接收到预期的响应会导致WordPress发生 'Not a Valid JSON Response' 错误。

在WordPress网站上编辑文章或页面时,你是否曾经遭遇过 ‘The response is not a valid JSON response’ 这样的错误。

在本教程中,我们将详细说明如何修复WordPress中的无效JSON错误。我们还将讨论为什么会发生此错误,以及将来如何避免该错误。

如何修复无效JSON错误

什么导致WordPress出现 ‘Not a Valid JSON Response’ 错误?

无法从服务器接收到预期的响应会导致WordPress发生 ‘Not a Valid JSON Response’ 错误。

基本上,WordPress在编辑博客文章时需要与服务器通信。它依赖于在后台从Web托管服务器获取响应。此响应通常采用JSON格式,该格式用于使用JavaScript快速传输数据。

如果由于某种原因,WordPress无法获取响应,或者响应不是JSON格式,那么您将看到 ‘Not a Valid JSON Response’ 错误,如下图所示。

无效JSON错误提示

出现此错误的原因有很多。

  • 网站 URL 设置不正确。不匹配的 WordPress 网站地址设置会破坏 JSON 响应。
  • 插件冲突。不兼容或编码不良的 WordPress 插件可能会干扰 JSON 响应。
  • 服务器配置问题。服务器端问题或资源不足可能导致此错误。
  • SSL/ 混合内容问题。来自 HTTP 和 HTTPS 元素的混合内容会妨碍正常的 JSON 通信。
  • 固定链接结构问题。不正确的永久链接设置会影响 URL 的处理方式,从而导致 JSON 错误。

但是,最有可能的原因是WordPress中的网址设置不正确或固定链接失效。

下面让我们一起看看应该如何修复WordPress所出现的无效JSON错误。

重要提示:在对网站进行更改前,请进行执行WordPress备份。以防出现问题,可快速将网站还原到以前的状态。

排除JSON响应无效错误的方法

1. 检查WordPress的链接设置

首先,您需要确保WordPress地址和站点地址设置正确。

转到设置»常规页面。即可查看WordPress地址(URL)和站点地址(URL)字段。

WordPress链接设置

对于大多数网站,此设置的两个字段应该对应相同的URL。

但是,也有少部分站长给WordPress设置指定的目录,并在其他地址上为网站提供服务。在这种情况下,两个URL地址可能不同。

但是,如果站点地址不正确,这会导致WordPress触发无效的JSON错误。

如果是因为WordPress地址和站点地址设置错误问题,修正并保存更改后。再次编辑博客文章,查看是否添加任何新区块或保存该文章,看是否会触发 ‘Not a Valid JSON Response’ 错误。

如果仍然看到错误,请往下看。

2. 修复WordPress固定链接结构

WordPress带有SEO友好的URL结构,这样对文章和页面使用人类可读的URL。

但是,有时用户可能会弄​​乱固定链接设置。这可能导致WordPress编辑器无法获得有效的JSON响应并导致显示错误。

要解决此问题,您只需访问设置»固定链接页面。在这里,您需要仔细查看固定链接选项。

WordPress固定链接设置

如果不确定是否使用正确的设置,则只需选择可用的默认格式之一。

之后,继续并单击“保存更改”以存储您的设置。

然后尝试编辑博客文章或页面,以查看错误是否已消失。如果还没有,那么尝试下一步。

3. 重新生成htaccess文件

WordPress中的.htaccess文件用作配置文件,用于管理SEO友好的URL(固定链接)。

通常,WordPress可以自动重新生成和更新它。您还可以通过单击“设置”»“固定链接”页面底部的保存更改”按钮来触发该更新。

但是,有时它可能无法更新或设置不正确。这会影响您的WordPress固定链接,还可能导致无效的JSON响应错误。

要解决此问题,您需要使用FTP客户端或WordPress托管帐户信息中心中的文件管理器应用程序连接到您的网站。

连接后,您需要在网站的根文件夹中找到.htaccess文件,并将其下载到本地计算机。

FTP下载htaccess

提示:无法找到.htaccess文件?参考如何查找.htaccess文件这篇文章。

之后,您需要使用FTP客户端或文件管理器应用编辑.htaccess文件。

编辑htaccess

打开文件后,替换为以下代码:

# BEGIN WordPress 
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] 
# END WordPress

保存更改后并将文件上传回网站服务器文件原来的位置。

再次访问您的网站并编辑和发布页面,以查看是否可以重现无效的JSON响应错误。

如果仍然看到错误,则可以采取下面其他一些步骤。

4. 修复任何WordPress混合内容错误

当网站加载 HTTP 和 HTTPS 元素时会出现混合内容,这可能会导致安全和功能方面的问题。

在 WordPress 中,混合内容会破坏编辑器和服务器之间的通信,因为浏览器会阻止所谓安全页面上的非安全请求。修复混合内容可确保安全加载所有元素,解决潜在的 JSON 错误。

指南如下:

  1. 安装一个插件,如 Really Simple SSL Better Search Replace。这些插件可以检测数据库中的混合内容警告,并将 HTTP URL 转换为 HTTPS。

Better Search Replace

  1. 检查主题文件、小工具、图片和其他内容区域是否有硬编码的 HTTP 链接,并手动将其更新为 HTTPS。
  2. 使用缓存插件清除 WordPress 缓存,确保正确应用新设置。

5. 查看Rest API调试日志

无效的JSON响应错误也可能意味着WordPress的REST API遇到错误。REST API是当您在网站上工作时WordPress用于与服务器通信的一组技术。

您可以在WordPress网站运行状况工具中查看此错误的详细信息。访问工具»站点健康页面。

站点健康REST API意外错误信息

在此处,您可能会看到一个标记为 ‘The REST API encountered an unexpected result’ 的问题。单击问题将会显示更多详细信息,这可能会给您一些提示,指出哪些插件或第三方服务可能会导致此问题。

WordPress REST API 使编辑器能够与服务器通信,并执行保存和发布内容等任务。如果 REST API 被阻止或出现故障,编辑器就无法收到有效的 JSON 响应。

查看 REST API 调试日志可帮助你找出导致此错误的任何潜在问题。请按照以下说明查看调试日志:

  1. 通过 FTP 或托管提供商的文件管理器访问 WordPress 网站的根目录。
  2. 打开 wp-config.php 文件,在“That’s all, stop editing! Happy publishing!”一行,以启用调试和日志功能:
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);

    wp-config.php 文件 完成后,保存更改。

  3. 进入 WordPress 编辑器,尝试更新内容以触发错误并生成日志条目。
  4. 访问网站根目录下的 wp-content 目录。然后找到 debug.log 文件并打开,查看日志条目。 debug.log 文件
  5. 在该文件中查找与 REST API 相关的条目。这些条目可能会提供导致 JSON 错误的线索,例如 SSL 证书问题、服务器配置问题或请求受阻。

6. 停用所有WordPress插件

有时,WordPress插件可能彼此冲突或与WordPress核心冲突。这可能会导致意外行为,并且可能是无效JSON错误的潜在原因。

只需转到“插件»已安装插件”页面。在这里,选择所有WordPress插件,然后在“批量操作”下拉菜单下选择“停用”,单击“应用”按钮继续。

WordPress插件停用

WordPress现在将停用所有已安装的插件。

如果错误消失,则表明您网站上安装的一个插件引起了该错误。

要弄清楚哪个插件,您需要一个个地启用,然后尝试重现该错误。重复此过程,直到找到罪魁祸首。

之后,您可以与插件作者联系以获得支持或找到其他插件。

7. 临时切换到经典编辑器

在努力解决无效 JSON 响应错误的同时,还有一些临时解决方案可以继续不间断地更新内容。这些方法有助于绕过问题,在应用永久性修复之前提供一种变通方法。

使用经典编辑器插件

顾名思义,经典编辑器插件可以让你使用以前的经典编辑器。它对 WordPress REST API 的依赖性较低,可以帮助避免块编辑器的问题。具体方法如下:

  1. 在仪表盘中,转到插件 → 安装新插件
  2. 搜索 Classic Editor 插件,安装并点击启用

Classic Editor 插件

  1. 激活后,它将取代 WordPress 区块编辑器。再次尝试编辑内容,看看问题是否得到解决。

编辑内容

直接上传媒体文件

如果在块编辑器中上传图片或文件时出现 JSON 错误,作为临时解决方案,您可以直接通过媒体库上传媒体:

  1. 导航至媒体 → 添加文件
  2. 在此上传文件,然后将它们插入到文章或页面中。

上传媒体文件

8. 进一步故障排除

许多事情会阻止WordPress REST API或使其返回无效的JSON响应。我们已经解决了上面最可能的问题,但是,如果这不能解决您的问题,那么您可以尝试其他一些步骤。

切换到WordPress默认主题

有时,您的WordPress主题与插件或WordPress核心之间的冲突可能会导致意外行为。

您可以通过简单地切换到默认的WordPress主题(例如TwentyTwentyOne或Twenty-Twenty)来进行测试。

暂时关闭网站应用程序防火墙

防火墙通过阻止可疑请求来 保护WordPress网站免受恶意攻击。不过,出于安全原因,它们也可能阻止来自 WordPress 编辑器的合法请求,导致类似无效 JSON 响应这样的错误。

解决此问题的最简单方法是暂时禁用WordPress防火墙插件或服务。

只需停用插件即可禁用某些应用程序级WordPress防火墙。对于Sucuri和Cloudflare等DNS级别的防火墙,您可以从帐户仪表盘中将其禁用。

暂时禁用安全防火墙可以确定它是否是问题的根源。请按照以下步骤操作:

  1. 如果使用 Wordfence、Sucuri 或 iThemes Security 等防火墙插件,请暂时停用。
  2. 使用 Cloudflare AWS WAF 等网络应用程序防火墙 (WAF) 的用户可以访问 WAF 网站,打开设置,暂时禁用或将其设置为“学习模式”。
  3. 如果您的主机提供商有服务器级防火墙,请访问控制面板并将其关闭。
  4. 返回 WordPress 编辑器,尝试保存或发布内容。如果错误已经解决,则说明是防火墙造成的。
  5. 重新启用防火墙并调整其设置,允许有效请求而不阻止它们。如果您需要帮助,请联系您的插件、WAF 或主机提供商的支持团队寻求帮助。

启用WordPress调试

WordPress内置debug功能,可让您记录错误日志。但是,默认情况下未启用它。

要打开它,您需要将以下代码添加到wp-config.php文件中:

define( 'WP_DEBUG', true ); 
define( 'WP_DEBUG_LOG', true );

之后,WordPress会将所有错误的日志保存在/wp-content/文件夹中的debug.log文件中。您可以使用FTP客户端访问此文件。

错误日志可能会为您提供有关导致网站上无效JSON错误的原因线索。

小结

WordPress 的 JSON 响应无效错误可能由几个问题引起,如不正确的 URL 设置、插件冲突或服务器配置问题。

本文提供了几个故障排除步骤,从检查永久链接和禁用插件到修复混合内容和查看 REST API 调试日志。有条不紊地实施这些解决方案,找出根本原因并解决此 WordPress JSON 错误。

如果问题仍然存在,请考虑联系 WordPress 专业人员寻求进一步帮助。如果您有任何问题或解决此问题的技巧,请使用下面的评论框。

常见问题

什么是WordPress中的JSON响应?

WordPress中的JSON响应是服务器和浏览器之间交换的数据,特别是在编辑器中。WordPress 使用 JSON 通过 REST API 进行通信,以完成保存和发布内容等任务。

如何处理JSON响应错误?

要处理 JSON 响应错误,请检查 URL 设置、永久链接、插件和服务器配置。然后,按照停用插件、查看 REST API 调试日志和调整安全设置等故障排除步骤解决问题。

如何检查JSON是否有效?

要检查 JSON 是否有效,请使用 JSONLint 等在线工具或 Google Chrome 浏览器的网络选项卡等浏览器开发工具。复制 JSON 响应,将其粘贴到工具中,然后进行验证。该工具会突出显示 JSON 结构中的错误,以便更正。

评论留言