Html 413发送图像数据时请求实体太大
我的网站的一部分使用该方法从HTML5画布上获取图像Html 413发送图像数据时请求实体太大,html,perl,apache,nginx,Html,Perl,Apache,Nginx,我的网站的一部分使用该方法从HTML5画布上获取图像 .toDataURL() 然后使用AJAX将原始数据作为POST消息的一部分发送到我的服务器。 在服务器端,我有一个cgi脚本,它需要长数据字符串。 我经常会遇到这样的错误: 413 (Request Entity Too Large) 我正在使用perl CGI库,但我没有 $CGI::POST_MAX 设置,或 $CGI::DISABLE_UPLOADS 设定。 这是由于服务器中设置的限制造成的吗?我使用apache
.toDataURL()
然后使用AJAX将原始数据作为POST消息的一部分发送到我的服务器。
在服务器端,我有一个cgi脚本,它需要长数据字符串。
我经常会遇到这样的错误:
413 (Request Entity Too Large)
我正在使用perl CGI库,但我没有
$CGI::POST_MAX
设置,或
$CGI::DISABLE_UPLOADS
设定。
这是由于服务器中设置的限制造成的吗?我使用apache和nginx作为代理服务器。我担心的是,我将无法回避这个问题,因为我正在编写我的站点以安装在bluehost服务器上。基本上我有两个问题:
1.有没有一种方法可以使用html5画布方法创建一个文件上传类型的post请求到服务器?
2.有没有办法绕过这个413错误而不影响Apache/Nginx(或其他一些服务器)的配置?这个错误是由于URL太长造成的 虽然URL的长度没有官方限制,但实际上浏览器和服务器都有限制 。这是旧版本Internet Explorer的限制。我认为IE的最新版本允许4000个左右,但Chrome限制在2000个左右 通过服务器
因此,如果您的数据超过此值,您可能需要想出另一种发送方式,而不是将其转换为URL字符串。如果您在尝试上载413请求实体时遇到过大错误,则需要增加
nginx.conf
或任何其他配置文件中的大小限制。在服务器部分中添加client\u max\u body\u size xxM
,其中xx
是您希望允许的大小(以兆字节为单位)
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
client_max_body_size 20M;
listen 80;
server_name localhost;
# Main location
location / {
proxy_pass http://127.0.0.1:8000/;
}
}
}
首先确定是您的脚本还是服务器产生了错误。如果您没有设置
$CGI::POST_MAX
,则错误来自Apache或Nginx。身体有多大?如果在几兆字节以内,我会给提供商发电子邮件,要求他们将限制设置为合理的值。而且,由于您有两台服务器,请确定发送错误报告的是哪台服务器。检查错误日志。另外,请发布您的javascript发布代码。