" 413请求实体太大"用于AJAX POST请求,但不用于正常文件上载

时间:2016-11-10 16:00:54

标签: php jquery ajax apache symfony

我的环境是1und1(1and1)的共享托管包。在我的笔记本电脑上,一切正常。

我向服务器发送了一个很大的AJAX请求(~1.2MB),这个请求现在已经很好了。但是,几天前它停止了工作,我不断收到以下回复:

  

413请求实体太大

     

请求的资源   [我的请求网址]不允许   请求带有POST请求的数据,或者提供的数据量   请求超出容量限制。

当我降低POST参数(一个长JSON字符串)的大小时,一切都按预期工作。限制大约是1MB(通过反复试验确定)。

我已经找到了很多建议,原因可能是什么。例如。以下php配置值。但是,它们比我本地机器上的那些更自由,我看不出它们在哪里可以限制:

  • max_input_time = -1
  • max_execution_time = 50000
  • upload_max_filesize = 64M
  • post_max_size = 64M
  • memory_limit = 256M

然后,另一个配置值经常出现在解决方案中,即apache config LimitRequestBody。这里的问题是:AFAIK我没有在1and1共享主机上更改它 - 我找不到查看apache错误日志的方法......

我最初认为LimitRequestBody 必须才是原因。

但是为什么我可以通过普通的POST HTML file表单上传文件然后(使用4MB文件测试)在同一台服务器上(使用带有文件类型对象的Symfony 2表单生成器)这似乎转化为标准的HTML文件上传表格)?到目前为止,我理解LimitRequestBody(以及SecRequestBodyNoFilesLimit)值,如果真的是原因,它也应该在这里引起同样的错误,对吗?

那么是否还有人知道我可以做些什么来进一步调试此错误?或者我的问题有解决方案吗?或者至少有任何想法如何解决这个问题?

PS: 在没有https的情况下访问网页时,SSLRenegBufferSize应该不相关,对吗?

1 个答案:

答案 0 :(得分:1)

当请求主体大于服务器配置为允许时,会发生413错误,并且只有在服务器不受您控制的情况下才能执行此操作。这是一个想法:

要求您的托管公司将httpd.conf文件或本地.htaccess文件中的LimitRequestBody指令设置为更高。 More Info