gra*_*avi 5 javascript php xml ajax jquery
当我尝试将 XML 文件传输到服务器时,出现此错误。
在我的场景中,网页使用 javascript 处理 XML 文件,然后将处理过的 XML 文件上传到 PHP 服务器。
文件容量为 400K。
配置文件
post_max_size = 8M
upload_max_filesize = 2M
memory_limit = 128M
Run Code Online (Sandbox Code Playgroud)
客户初始请求:
$.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);
}
});
Run Code Online (Sandbox Code Playgroud)
客户端上传请求
$.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);
}
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,服务器响应是:
<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>
Run Code Online (Sandbox Code Playgroud)
正如 hakre 指出的,除了 PHP 中的设置之外,当请求有效负载的大小超出 Web服务器配置允许的范围时,您经常会收到 413 错误。这些指令因服务器而异,但以下是一些常见指令(如果您使用的是托管平台,您可能需要联系主机的支持团队):
Nginx:查看client_max_body_size指令nginx.conf(http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size)
Apache:该指令可以在目录级文件中LimitRequestBody使用(http://httpd.apache.org/docs/2.4/mod/core.html#limitrequestbody)httpd.conf.htaccess
IIS:查看maxAllowedContentLength(requestFiltering>的一部分requestLimits),或UploadReadAheadSize在 IIS6 中(IIS 解决方案非常依赖于版本,因此我建议进行一些研究)。
如果您通过 HTTP 和 HTTPS 处理请求,请确保相关配置适用于两者。
虽然不太常见(在企业网络中更常见),但这也可能与请求所通过的其他代理或安全设备有关,因为每个代理或安全设备都可能具有影响请求处理的不同限制。
如有疑问,请检查日志:首先,确保请求已到达您的服务器(在访问日志中),如果是,请检查响应代码,然后还要检查错误日志。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
5873 次 |
| 最近记录: |