发布或上传失败。错误消息:“响应不是有效的JSON响应”

时间:2019-11-23 16:36:48

标签: wordpress

今天,我在WordPress中遇到问题。当我尝试创建新页面并在WordPress管理部分中上传新图像时,我试图找出解决方案,但是我没有得到...所以打了一个小时后,我得到了解决方案... < / p>

错误

  

“发布失败。错误消息:该响应不是有效的JSON响应。”

20 个答案:

答案 0 :(得分:6)

如前所述,更改永久链接设置可以解决我的问题。如果您将“帖子名称”保留为永久链接设置,则.htaccess文件需要可通过wordpress写入。

或者,也可以将以下内容粘贴到.htaccess文件的底部。首先从文件底部开始执行Mod_rewrite更改。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>

答案 1 :(得分:5)

我在本地开发环境中遇到了同样的问题,发现该问题是由于重写权限所致。确保您的.htaccess文件具有适当的权限。

sudo chmod 755 .htaccess

设置权限后,保存永久链接设置。如果问题仍然存在,请确保启用了mod_rewrite。以下将适用于Ubuntu上的apache2。

sudo a2enmod rewrite
sudo systemctl apache2 restart

如果仍然无法正常工作,则您的apache配置可能太严格了。以下应该在Ubuntu上为apache2做到这一点。编辑/etc/apache2/apache2.conf并查找根目录块。通常是带有/ var / www的代码,如下所示。您可能会看到AllowOverride None。只需将其更改为“本地所有,如下所示”即可,但是您可能希望进行一些研究,并在生产服务器上更加安全。

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

进行更改后,请再次在apache上重新启动,一切都应该很好。

sudo systemctl apache2 restart

答案 2 :(得分:5)

现在,您可以使用 Classic Editor 插件来解决此问题。

该错误的答案是我不知道的编辑器,但是有一个新的编辑器问题。如果您遇到相同的问题,请使用以下插件。为了解决这些问题,我正在就此问题进行研发。如果我得到退出解决方案,那我会尽快进行更新...

答案 3 :(得分:4)

也许您遇到一个安全问题,其中包含混合内容(HTTP和https URL)。 第1步 1. 1.检查您的Wordpress URL。转到设置->永久链接,然后单击普通并保存页面。然后删除错误

第2步

  1. 检查您的Wordpress URL。转到设置->常规
  2. 将Wordpress地址和网站地址更改为 https://

这为我解决了问题

答案 4 :(得分:3)

转到设置>永久链接。选择“帖子名称”并保存。

尝试更新您的帖子/页面。如果不起作用,请尝试在设置>永久链接中选择另一个选项。

答案 5 :(得分:1)

我刚刚安装了经典编辑器插件,它解决了“响应不是有效的JSON响应”问题。

答案 6 :(得分:1)

当尝试发布我的内容时,我遇到了同样的“无效的JSON响应”错误。发布新帖子/页面时,WordPress似乎在发布JSON帖子,因此我在开发人员工具中选中了“网络”标签。如果选中此JSON调用的“响应”标签,则可能会看到有关此无效JSON响应的更多详细信息。

就我而言(您可能有所不同),在实际的JSON数据之前输出了一些已弃用的调试消息,并弄乱了响应。修复不推荐使用的消息后,发布再次起作用。

<br />
<b>Deprecated</b>:  Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in <b>Unknown</b> on line <b>0</b><br />
<br />
<b>Warning</b>:  Cannot modify header information - headers already sent in <b>Unknown</b> on line <b>0</b><br />
{__NORMAL_JSON_DATA_HERE__}

答案 7 :(得分:1)

导航到设置> 永久链接。选择永久链接结构以过帐名称并保存。现在尝试保存您的帖子/页面。

在这里,我分享了此屏幕截图供您参考。

enter image description here

该问题应该已经解决。

问题解决后,您可以根据需要在“永久链接”中选择一个旧选项。

注意:如果您已经选择了发件人姓名,则需要选择其他选项来重置永久链接。

答案 8 :(得分:0)

由于不同的原因,我与我的一位客户遇到了同样的问题,但从未将其视为潜在的解决方案。

如果您启用了 W.A.F(如 cloudflare 或类似的),副作用之一可能是此错误,因此如果其他解决方案均无效,请务必禁用以禁用您的 waf。

答案 9 :(得分:0)

我遇到了持续存在的问题。在我找到解决方案之前,我替换了 PHP 8,因为这是自定义 PHP 安装。

但没有任何效果。

解决方案是在 Drupal 安装过程中找到的。

  1. 启用 Opcache(虽然仅适用于 Drupal)
  2. Allow Mod rewrite, Allow all(在我的 httpd.ini 文件中出现了 3 次 Mod Rewrite,

他们又改成NoneAllnone all这是小写字母,最后一个NoneAll< /p>

使用 httpd -k restart 重新启动 httpd(CMD 作为管理员)

这解决了。

答案 10 :(得分:0)

我的一些自定义插件中有一些回声,所以这也是导致这个问题的原因。

答案 11 :(得分:0)

现在,这里有两个服务器块,第一个在端口80上运行。 对于第二个服务器块,有一个端口443,您应在其中实现以下代码。

服务器{
#ssl配置
位置/ {
#首先尝试将请求作为文件,然后
#作为目录,然后退回到显示404。
#try_files $ uri $ uri / = 404; //对此块发表评论
try_files $ uri $ uri / /index.php$is_args$args;
}
}
现在退出并重新启动Nginx服务器。

enter image description here

〜$ sudo服务nginx重新启动

您完成了。享受。

答案 12 :(得分:0)

转到 / etc / nginx / sites-available / 打开默认文件-> sudo vi default sudo nano default

将以下行添加到位置:

添加评论: #try_files $ uri $ uri / = 404;

添加此行: try_files $ uri $ uri / /index.php?$args;

请参见下面用红线描述的屏幕截图:

enter image description here

答案 13 :(得分:0)

我的问题与 .htaccess 有关。我从LucasBr的评论中得到了有关“ .htaccess配置问题”的提示。由于我已将站点复制到本地开发环境。我需要更新自定义mod_rewrite设置以匹配我的设置。

重要的几行是:

RewriteBase /

RewriteRule . /index.php [L]

以前已将它们设置为访问子目录站点。

答案 14 :(得分:0)

添加和/或更新页面时,除了各种其他随机错误之外,我一直收到相同的错误消息。我在本地开发服务器和Webhost上都收到错误消息。当更改为默认主题之一(例如29个)时,错误就会消失。对我来说,问题出在我的页面模板文件中。我注意到,当为新创建的页面选择模板时,我会选择多个具有相同名称的选项。

我有几个页面模板文件(例如about-page.php,contact-page.php,services-page.php等)。创建这些文件时,由于大多数页面都是相似的,因此我只需要从现有文件中复制/粘贴即可创建新的xxxx-page.php文件。但是,在其中一些复制的文件(不是全部)中,我忘记了修改“模板名称”(在文件顶部)。

检查完所有模板文件都具有唯一的名称后,JSON错误消失了。我所有其他错误也都消失了。我正在使用Wordpress 5.4。

答案 15 :(得分:0)

我也遇到同样的错误,在我的情况下,原因是页面中使用了短代码,而定义该短代码的函数是使用'echo'输出数据而不是使用'return'

答案 16 :(得分:0)

看起来仍然没有得到解决。

一个对我有用的解决方法(发布以防其他人使用)-就我而言,我使用的是导致问题的HTML块。我所做的就是添加一个Paragraph块> Edit as HTML。它现在解决了这个问题。可惜的是WP尚未调查它,好像它已经发生了一段时间。

答案 17 :(得分:-1)

尝试删除所有到WordPress网站的重定向,包括子域。

答案 18 :(得分:-1)

如果您在上传图片时遇到问题,请遵循以下步骤:https://navinrao.com/the-response-is-not-a-valid-json-response/

我也在更新普通文字时遇到了这个问题。 我遇到的问题是由于链接()中有 javascript:void(0)关键字引起的。

请确保您的内容是否包含包含javascript的关键字 在更新之前。

tidyr::pivot_longer(df, cols = -ID, 
                    names_to = c(".value", "meas_type"),
                    names_pattern = "(.*)(\\d+)")

# A tibble: 30 x 4
#     ID meas_type   meas    unc
#   <int> <chr>      <dbl>  <dbl>
# 1     1 1          150.  0.0381
# 2     1 2         1271.  0.0606
# 3     1 3          601.  0.103 
# 4     2 1           20.0 0.0915
# 5     2 2          563.  0.0614
# 6     2 3         1675.  0.102 
# 7     3 1          161.  0.0354
# 8     3 2          941.  0.0607
# 9     3 3          609.  0.103 
#10     4 1          103.  0.0433
# … with 20 more rows

删除 javascript:void(0)之后;它工作正常。 祝您玩得愉快:)

答案 19 :(得分:-1)

这是永久链接错误。

执行以下步骤来解决此问题(具体取决于您的情况):https://wordpress786.com/updating-failed-error-message-the-response-is-not-a-valid-json-response/

  1. 转到settings > permalinks并再次保存它们
  2. 如果您使用的是 nginx ,请转到站点nginx conf 文件,并确保该文件包含wordpress永久链接的规则(通常用于wordpress的nginx configurationn,请问我)如果感到困惑)
  3. 如果对conf文件进行任何编辑,请重新启动nginx