javascript - PHP 413(请求实体太大)

标签 javascript php jquery ajax xml

当我尝试将 XML 文件传输到服务器时出现此错误。

在我的场景中,网页使用 javascript 处理 XML 文件,然后将 XML 处理后的文件上传到 PHP 服务器。

文件容量为400K。

php.ini

post_max_size = 8M
upload_max_filesize = 2M
memory_limit = 128M

客户端初始请求:

$.ajax({
    type: "GET",
    url: "/dirname/filename.xml",
    dataType: "xml",
    async: false,
    success: function(data){
        xmlCID = data;
    },
    error: function(jqXHR, textStatus, errorThrown){
        console.log(jqXHR.responseText, textStatus, errorThrown);
        alert(textStatus);
    }
});

客户端上传请求

$.ajax({
    url: "/dirname/filename.xml",
    dataType: "xml",
    method: "PUT",
    processData: false,
    data: xmlCID,
    success: function(data){
        console.log(data);
    },
    error: function(jqXHR, textStatus, errorThrown){
       alert(jqXHR.responseText, textStatus, errorThrown);
    }
});

不幸的是,服务器响应是:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
  <title>413 - Request Entity Too Large</title>
 </head>
 <body>
  <h1>413 - Request Entity Too Large</h1>
 </body>
</html>

最佳答案

正如 hakre 所指出的,除了 PHP 中的设置之外,当请求负载的大小超出网络服务器配置允许的范围时,您通常会收到 413 错误。这些指令因服务器而异,但这里有一些常见的指令(如果您使用的是托管平台,您可能需要联系主机的支持团队):

如果您通过 HTTP 和 HTTPS 处理请求,请确保相关配置适用于两者。

虽然不太常见(在公司网络中更常见),但这也可能与请求正在传递的其他代理或安全设备有关,因为它们中的每一个都可能有不同的限制来影响请求的处理。

如有疑问,请检查日志:首先,确保请求到达您的服务器(在访问日志中),如果是,请检查响应代码,然后还要检查错误日志。

希望对您有所帮助!

关于javascript - PHP 413(请求实体太大),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428490/

相关文章:

javascript - async.each - 回调是做什么用的?

javascript - 我随机遇到 jquery 错误

javascript - 在 C# MVC 中检查所有子项时未检查 Jquery 复选框

javascript - 在特定 HTML 元素中注入(inject)并执行 JavaScript 字符串

php - 连接彼此不相关的表 Laravel

php - Code Igniter-批量插入功能在数据库中插入空字段

php - 无法增加 MAMP php 内存限制

javascript - 合并 xAxis Highcharts

javascript - 0x800a138f - Internet Explorer : JavaScript runtime error: Unable to get property '0' of undefined or null reference

jquery - 如何将值从双句柄 jQuery slider 传递到 Rails 表单