试试其他关键词,或清除筛选条件。
编辑器保存时调用 /wp-json/ 接口没拿到正确数据。先重新保存固定链接、核对网站地址,再打开 /wp-json/ 和站点健康定位原因。
在 WordPress 里点“更新”或“发布”,顶部弹出红色提示:“更新失败。此响应不是合法的 JSON 响应。”文章怎么都存不上。
先说结论:这是编辑器和你的网站“对话”失败了。WordPress 的区块编辑器保存内容时,会向网站的 /wp-json/ 地址发请求,期待收到一段 JSON 数据。结果收到的是错误页、防火墙拦截页或者 PHP 报错,就会弹出这句话。
大多数情况,重新保存一次固定链接就好了。不行再往下查。
进入后台“设置 → 固定链接”,什么都不用改,直接点“保存更改”。这会让 WordPress 重新生成网址规则。
很多人到这一步就解决了。
进入“设置 → 常规”,看“WordPress 地址”和“站点地址”:
两个地址一般应该完全一样。
如果网站装了 SSL 证书,两个都要以 https 开头。
一个写 http、一个写 https,是这个报错的常见原因。
在浏览器里打开“你的域名/wp-json/”:
看到一大串文字和括号:说明接口是通的,问题可能在插件或权限。
显示 404:多半是固定链接或服务器的伪静态规则有问题,回到第一步,或者让主机商检查 .htaccess。
显示拦截页或 403:被防火墙或安全插件挡了。
进入“工具 → 站点健康”,如果出现“REST API 遇到了意外的结果”之类的提示,点开看详细原因。
先停用安全类、缓存类插件,再试一次保存。能保存了,就把插件一个个重新启用,直到找出是哪一个导致的。
有些主机的防火墙(WAF)会拦截 WordPress 的接口请求。WordPress 官方论坛上就有案例:主机的安全规则拦截了 /wp-json/batch/v1,保存时就报这个错。这种情况需要主机商调整规则。
查看 WordPress 官方论坛讨论
如果网站前面套了 Cloudflare 这类 CDN,也检查一下有没有规则拦了 /wp-json/。
按 F12 打开开发者工具,切到“网络(Network)”,再点一次“更新”,看失败那条请求的状态码:
401 或 403:权限或安全规则拦截
404:固定链接或伪静态问题
500 或 503:服务器、PHP 或插件出错
把这个状态码发给主机商,沟通会快很多。
参考:Jetpack 对此报错的说明