什么可能导致对wp-admin/async-pload.php的POST返回JSON>和<Html?

时间:2015-07-17 作者:astletron

在“媒体”选项卡中,上载有效的图像文件会显示“HTTP错误”。

不过,重新加载“媒体”选项卡显示图像确实上载并调整了大小。

浏览器调试工具显示,在上载时,浏览器正在向wp admin/async upload发送帖子。php。服务器响应500错误。不过,回应的主体是可疑的。第一部分是JSON结构。JSON结构后面紧跟着一个标题为“Wordpress Error”但正文为空的HTML文档。

进入webserver(apache)错误日志和WP调试模式以及增加的PHP错误/警告详细程度都没有帮助。禁用所有插件对错误没有影响。尝试在GD和ImageMagick之间切换也没有成功。

相关软件版本:

Wordpress 4.2.2

  • Ubuntu Utopic
  • 关于什么可能导致异步上传的任何想法。php返回JSON和HTML错误文档和/或如何进一步调试?

    5 个回复
    最合适的回答,由SO网友:Jörn Schellhaas 整理而成

    我也有同样的问题,在调试输出中没有找到任何信息。

    结果是这样的DOING_AJAX 没有定义(我不知道为什么)。

    更改的开头async-upload.php 从…起

    if ( isset( $_REQUEST[\'action\'] ) && \'upload-attachment\' === $_REQUEST[\'action\'] ) {
        define( \'DOING_AJAX\', true );
    }
    

    define( \'DOING_AJAX\', true );
    
    为我工作。也许我会更深入地研究,找到真正的根本原因。

    SO网友:Nicolai Grossherr

    这可能不是WordPress引起的问题,而是由于服务器配置和/或设置引起的。500个错误是相当普遍的,可能有多种来源,因此很难给出一个指令来解决它。顺便说一句,当这种情况发生时,返回JSON和HTML似乎很常见,不知道在哪里,可能会混淆here . 我很确定这是由于内存问题造成的。

    虽然这可能与内存有关,但我不能确定,因为没有足够的信息可以百分之百确定。因此,这里有一个小的、不一定全面的检查列表供您处理:

    内存限制-您的PHP内存可能即将不足,请增加它;放define( \'WP_MEMORY_LIMIT\', \'128MB\' ); 进入wp-config.php

  • 。htaccess—腐败/问题;检查它;可能会备份并重新生成PHP5,有些宿主对此有问题,尽管我已经有一段时间没有看到它了;尝试放置AddType x-mapp-php5 .php 进入您的.htaccess
  • 文件权限-确保其正确,如果不确定,则使用正确的权限重新设置;法典文章:changing file permissions
  • 文件夹权限--
    • WP-检查并在需要时更正它们;法典文章:changing file permissions
    • 服务器-有时临时上载文件夹的权限存在问题,例如重新上载WP核心文件
    • -虽然如果正确完成最后两个步骤,则不需要这样做,但有时会出现其他损坏,因此,这可能是采取apache设置的另一个步骤-确保在服务器上正确设置apache,以满足您的需要和实际需求;e、 一个常见的罪魁祸首似乎是mod_security
    • 检查WP自定义代码,了解您通过插件编写或安装的内容;您知道例行程序,通过停用和/或切换到默认主题进行测试,等等,所有列表项都非常熟悉并有文档记录,因此如果需要,您可以在那里找到更多信息。

      最后但并非最不重要的是,取得了巨大成功!

  • SO网友:Rares P.

    wp-config.php 文件(wordpress的根文件夹)必须启用调试。

    你必须设置wp_debugtrue.

    改变define(\'WP_DEBUG\', false);define(\'WP_DEBUG\', true);

    保存文件并刷新浏览器(我建议您使用ctrl+f5)。

    您将看到所有错误。

    SO网友:Krzysztof Przygoda

    我的情况是(WP v5.0),这是PHP版本问题(PHP v5.4)。切换到PHP v7。2解决了这个问题。

    SO网友:Christopher

    我建议在黑暗中摸索之前检查Web服务器的错误日志。

    在我的例子中,我发现了以下错误消息

    2020/01/16 15:30:24 [error] 24844#24844: *206729 client intended to send too large body: 33962282 bytes, client: xxx.xxxx.xxx.xxx, server: example.com, request: "POST /wp-admin/async-upload.php HTTP/2.0", host: "example.com", referrer: "https://example.com/"
    
    也就是说nginxclient_max_body_size 太低了。仅限WordPress检查upload_max_filesize 在php配置中,WordPress允许上载比client_max_body_size 如果该值低于upload_max_filesize.

    结束

    相关推荐

    将WordPress附件导入wp-Content/Uploads/中的自定义目录

    我希望有人能阐明我试图解决的这个问题,即使只是简单地改变我的思维过程,告诉我如何解决这个问题。我正在将一个基于CakePHP的定制CMS web应用程序导入WordPress,方法是遍历数据库,进行大量SQL查询,构建数组,最后输出必要的XML文件,以便使用WordPress导入工具导入。目前我已经很好地导入了类别、标签和帖子/页面,没有问题,但问题似乎出在图像上。基于CakePHP的CMS中当前的图像格式是images/year/month/day/post_id/image_name.ext据我所知,