在WordPress后台编辑发布或更新文章时,如果碰到“此响应不是合法的JSON响应”的问题如何解决?站长帮查阅了百度搜索中的部分结果,这些都没说到重点,有些给出的方法虽可以解决此问题,但会造成其它问题。
所以本文将详细介绍如何排查此类故障,且说明故障原因。
是什么触发了“此响应不是合法的JSON响应”的错误?
错误“更新失败。此响应不是合法的JSON响应”通常发生在 WordPress 块编辑器处理内容时。当尝试将媒体文件添加到站点时,也可能会发生这种情况,特别是如果其直接提交到块编辑器中的块。
是什么原因导致这种情况发生呢?
当编辑网站页面或帖子时,它会连接到服务器进行响应。网站使用 JavaScript 以 JSON 格式发送此响应,如果 JavaScript 代码有错误或者 WordPress 无法连接到服务器,将收到此错误消息。
简而言之,如果编辑器无法与服务器正常通信,就会提示此错误。可能由于各种原因导致的,甚至包括 URL 设置不正确或永久链接损坏等基础问题。
接下来看看如何修复 WordPress 中的无效 JSON 错误。
如何修复“此响应不是合法的JSON响应”的错误
既然已经了解了“此响应不是合法的JSON响应”的含义,那么开始介绍排查解决此错误消息的方法。
此错误的常见原因之一是 URL 设置不正确。如果不小心使用了 HTTP 而不是 HTTPS(站点已启用了 SSL 证书),则会导致混合内容错误,即 HTTP 和 HTTPS 内容同时传输到 Web 浏览器。
如果启用了SSL,两个URL均使用https协议。
WordPress固定链接(或永久链接)是每个帖子和页面的唯一URL。但如果弄乱了固定链接设置,WordPress 编辑器将不会收到有效的 JSON 响应并导致错误出现。
如果以上项没有问题,或者修复后故障依然存在,请继续往下看。
如果以上方法都不起作用,基本可以判断是主题或是插件导致问题。WordPress开发者都很清楚,WordPress提供了一系列钩子,其中有些钩子是在编辑器保存或更新时触发执行的。如果执行过程中产生错误,就会出现“此响应不是合法的JSON响应”的故障。
例如常见的:publish_post钩子,会在文章或页面发布/更新时触发。
排查此类故障最好的方式就是将主题暂时切换至默认主题,所有插件先暂时禁用。
如果以上操作后,没有出现错误,则问题就是主题或插件引起的。
要找出导致问题的插件,请执行以下步骤:
- 依次启用/激活每个插件,看看是否出现错误。
- 如果启用特定插件后错误仍然存在,将知道是哪一个导致了错误。
- 然后,可以停用该插件并激活其余插件。
如果是主题/插件的问题,则需要联系开发者进行反馈或咨询解决办法,或者使用其它同类型的主题/插件替换。
WordPress 于 2018 年 12 月将经典编辑器升级为新的古腾堡/块编辑器。从那时起,许多用户都遇到了这个问题。
安装并激活Classic Editor插件即可切换为经典编辑器。WordPress 的新块编辑器将被旧的经典编辑器取代,这将改变将来编辑页面和帖子的方式。这也可能会影响先前使用块编辑器编辑的现有页面和帖子的格式和布局。
虽然使用经典编辑器应该可以解决问题,但故障原因未找出来。
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true );
debug.log(错误日志)文件将会出现在/wp-content/文件夹中。
还可以通过WordPress自带的站点健康检查WordPress REST API 是否遇到错误。如果发现此问题,解决该问题可能会修复网站的 JSON 响应错误。