- 错误类型:
- 其他错误
- 错误名称:
- 无效JSON错误
- 英文名称:
- The Invalid JSON Error
- 错误描述:
- 无法从服务器接收到预期的响应会导致WordPress发生 'Not a Valid JSON Response' 错误。
在WordPress网站上编辑文章或页面时,你是否曾经遭遇过 ‘The response is not a valid JSON response’ 这样的错误。
在本教程中,我们将详细说明如何修复WordPress中的无效JSON错误。我们还将讨论为什么会发生此错误,以及将来如何避免该错误。
什么导致WordPress出现 ‘Not a Valid JSON Response’ 错误?
无法从服务器接收到预期的响应会导致WordPress发生 ‘Not a Valid JSON Response’ 错误。
基本上,WordPress在编辑博客文章时需要与服务器通信。它依赖于在后台从Web托管服务器获取响应。此响应通常采用JSON格式,该格式用于使用JavaScript快速传输数据。
如果由于某种原因,WordPress无法获取响应,或者响应不是JSON格式,那么您将看到 ‘Not a Valid JSON Response’ 错误,如下图所示。
出现此错误的原因有很多。
- 网站 URL 设置不正确。不匹配的 WordPress 网站地址设置会破坏 JSON 响应。
- 插件冲突。不兼容或编码不良的 WordPress 插件可能会干扰 JSON 响应。
- 服务器配置问题。服务器端问题或资源不足可能导致此错误。
- SSL/ 混合内容问题。来自 HTTP 和 HTTPS 元素的混合内容会妨碍正常的 JSON 通信。
- 固定链接结构问题。不正确的永久链接设置会影响 URL 的处理方式,从而导致 JSON 错误。
但是,最有可能的原因是WordPress中的网址设置不正确或固定链接失效。
下面让我们一起看看应该如何修复WordPress所出现的无效JSON错误。
重要提示:在对网站进行更改前,请进行执行WordPress备份。以防出现问题,可快速将网站还原到以前的状态。
排除JSON响应无效错误的方法
1. 检查WordPress的链接设置
首先,您需要确保WordPress地址和站点地址设置正确。
转到设置»常规页面。即可查看WordPress地址(URL)和站点地址(URL)字段。
对于大多数网站,此设置的两个字段应该对应相同的URL。
但是,也有少部分站长给WordPress设置指定的目录,并在其他地址上为网站提供服务。在这种情况下,两个URL地址可能不同。
但是,如果站点地址不正确,这会导致WordPress触发无效的JSON错误。
如果是因为WordPress地址和站点地址设置错误问题,修正并保存更改后。再次编辑博客文章,查看是否添加任何新区块或保存该文章,看是否会触发 ‘Not a Valid JSON Response’ 错误。
如果仍然看到错误,请往下看。
2. 修复WordPress固定链接结构
WordPress带有SEO友好的URL结构,这样对文章和页面使用人类可读的URL。
但是,有时用户可能会弄乱固定链接设置。这可能导致WordPress编辑器无法获得有效的JSON响应并导致显示错误。
要解决此问题,您只需访问设置»固定链接页面。在这里,您需要仔细查看固定链接选项。
如果不确定是否使用正确的设置,则只需选择可用的默认格式之一。
之后,继续并单击“保存更改”以存储您的设置。
然后尝试编辑博客文章或页面,以查看错误是否已消失。如果还没有,那么尝试下一步。
3. 重新生成htaccess文件
WordPress中的.htaccess文件用作配置文件,用于管理SEO友好的URL(固定链接)。
通常,WordPress可以自动重新生成和更新它。您还可以通过单击“设置”»“固定链接”页面底部的“保存更改”按钮来触发该更新。
但是,有时它可能无法更新或设置不正确。这会影响您的WordPress固定链接,还可能导致无效的JSON响应错误。
要解决此问题,您需要使用FTP客户端或WordPress托管帐户信息中心中的文件管理器应用程序连接到您的网站。
连接后,您需要在网站的根文件夹中找到.htaccess文件,并将其下载到本地计算机。
提示:无法找到.htaccess文件?参考如何查找.htaccess文件这篇文章。
之后,您需要使用FTP客户端或文件管理器应用编辑.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 错误。
指南如下:
- 安装一个插件,如 Really Simple SSL 或 Better Search Replace。这些插件可以检测数据库中的混合内容警告,并将 HTTP URL 转换为 HTTPS。
- 检查主题文件、小工具、图片和其他内容区域是否有硬编码的 HTTP 链接,并手动将其更新为 HTTPS。
- 使用缓存插件清除 WordPress 缓存,确保正确应用新设置。
5. 查看Rest API调试日志
无效的JSON响应错误也可能意味着WordPress的REST API遇到错误。REST API是当您在网站上工作时WordPress用于与服务器通信的一组技术。
您可以在WordPress网站运行状况工具中查看此错误的详细信息。访问工具»站点健康页面。
在此处,您可能会看到一个标记为 ‘The REST API encountered an unexpected result’ 的问题。单击问题将会显示更多详细信息,这可能会给您一些提示,指出哪些插件或第三方服务可能会导致此问题。
WordPress REST API 使编辑器能够与服务器通信,并执行保存和发布内容等任务。如果 REST API 被阻止或出现故障,编辑器就无法收到有效的 JSON 响应。
查看 REST API 调试日志可帮助你找出导致此错误的任何潜在问题。请按照以下说明查看调试日志:
- 通过 FTP 或托管提供商的文件管理器访问 WordPress 网站的根目录。
- 打开 wp-config.php 文件,在“That’s all, stop editing! Happy publishing!”一行,以启用调试和日志功能:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
完成后,保存更改。
- 进入 WordPress 编辑器,尝试更新内容以触发错误并生成日志条目。
- 访问网站根目录下的 wp-content 目录。然后找到 debug.log 文件并打开,查看日志条目。
- 在该文件中查找与 REST API 相关的条目。这些条目可能会提供导致 JSON 错误的线索,例如 SSL 证书问题、服务器配置问题或请求受阻。
6. 停用所有WordPress插件
有时,WordPress插件可能彼此冲突或与WordPress核心冲突。这可能会导致意外行为,并且可能是无效JSON错误的潜在原因。
只需转到“插件»已安装插件”页面。在这里,选择所有WordPress插件,然后在“批量操作”下拉菜单下选择“停用”,单击“应用”按钮继续。
WordPress现在将停用所有已安装的插件。
如果错误消失,则表明您网站上安装的一个插件引起了该错误。
要弄清楚哪个插件,您需要一个个地启用,然后尝试重现该错误。重复此过程,直到找到罪魁祸首。
之后,您可以与插件作者联系以获得支持或找到其他插件。
7. 临时切换到经典编辑器
在努力解决无效 JSON 响应错误的同时,还有一些临时解决方案可以继续不间断地更新内容。这些方法有助于绕过问题,在应用永久性修复之前提供一种变通方法。
使用经典编辑器插件
顾名思义,经典编辑器插件可以让你使用以前的经典编辑器。它对 WordPress REST API 的依赖性较低,可以帮助避免块编辑器的问题。具体方法如下:
- 在仪表盘中,转到插件 → 安装新插件。
- 搜索 Classic Editor 插件,安装并点击启用。
- 激活后,它将取代 WordPress 区块编辑器。再次尝试编辑内容,看看问题是否得到解决。
直接上传媒体文件
如果在块编辑器中上传图片或文件时出现 JSON 错误,作为临时解决方案,您可以直接通过媒体库上传媒体:
- 导航至媒体 → 添加文件 。
- 在此上传文件,然后将它们插入到文章或页面中。
8. 进一步故障排除
许多事情会阻止WordPress REST API或使其返回无效的JSON响应。我们已经解决了上面最可能的问题,但是,如果这不能解决您的问题,那么您可以尝试其他一些步骤。
切换到WordPress默认主题
有时,您的WordPress主题与插件或WordPress核心之间的冲突可能会导致意外行为。
您可以通过简单地切换到默认的WordPress主题(例如TwentyTwentyOne或Twenty-Twenty)来进行测试。
暂时关闭网站应用程序防火墙
防火墙通过阻止可疑请求来 保护WordPress网站免受恶意攻击。不过,出于安全原因,它们也可能阻止来自 WordPress 编辑器的合法请求,导致类似无效 JSON 响应这样的错误。
解决此问题的最简单方法是暂时禁用WordPress防火墙插件或服务。
只需停用插件即可禁用某些应用程序级WordPress防火墙。对于Sucuri和Cloudflare等DNS级别的防火墙,您可以从帐户仪表盘中将其禁用。
暂时禁用安全防火墙可以确定它是否是问题的根源。请按照以下步骤操作:
- 如果使用 Wordfence、Sucuri 或 iThemes Security 等防火墙插件,请暂时停用。
- 使用 Cloudflare 或 AWS WAF 等网络应用程序防火墙 (WAF) 的用户可以访问 WAF 网站,打开设置,暂时禁用或将其设置为“学习模式”。
- 如果您的主机提供商有服务器级防火墙,请访问控制面板并将其关闭。
- 返回 WordPress 编辑器,尝试保存或发布内容。如果错误已经解决,则说明是防火墙造成的。
- 重新启用防火墙并调整其设置,允许有效请求而不阻止它们。如果您需要帮助,请联系您的插件、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 结构中的错误,以便更正。
评论留言