如何修复 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 安全指南
点击这里