我目前正面临一个无法找到解决方案的问题。
我正在开发一个带角度的WebClient应用程序,我创建一个带有边界请求的multipart / form-data,这个请求我想发布到服务器。我的后端是一个apache 2.4.6作为反向代理和一个tomcat 7.0.76。对于操作系统,我使用的是Centos 7.4.1708。我也在使用TLS1.2。
所以我写了一个上传多个文件的上传功能。我将文件附加到formdata对象:
let uploadFiles: FileList = this.inputElement.nativeElement.files;
let formData = new FormData();
for (let i = 0; i < uploadFiles.length; i++) {
let fileName = uploadFiles[i].name;
let file = uploadFiles[i] as Blob;
formData.append('uploadFile', file, fileName);
}
在我这样做之后,我在表格数据中添加了额外的信息:
formData.append('request', JSON.stringify(this.requestUploadFileRaw));
所以,当我查看chrome开发人员工具时,请求和一切看起来都很好。但只有当我用一个非常小的文件做这个时。我玩了一下,我得到的最大文件大小是292字节。
当我添加TLS1.2和apache代理config时,所有这些都会发生。
当我在没有tls1.2且没有反向代理的开发环境中尝试时,一切正常。
我在apache日志中遇到的错误是:
[proxy_http:error] [pid 1381](70008)部分结果有效但处理不完整:[client 127.0.0.1:36828] AH01095:预取请求主体未能通过127.0.0.1:8080(127.0.0.1) 127.0.0.1()
请求根本不会被重定向到tomcat。我无法在互联网上找到解决方案。我错过了什么吗?因为它使用非常小的文件而不是更大的文件。
感谢您的帮助!