使用httpd代理和SSL上传多部分文件 - >预取请求正文失败

时间:2017-11-15 03:53:12

标签: angular apache tomcat file-upload proxy

我目前正面临一个无法找到解决方案的问题。

我正在开发一个带角度的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。我无法在互联网上找到解决方案。我错过了什么吗?因为它使用非常小的文件而不是更大的文件。

感谢您的帮助!

0 个答案:

没有答案