首页 > 解决方案 > Angular 8 将 multipart/form-data 发送到 Java 后端

问题描述

我正在尝试创建一个服务,用户将能够填写表单(所有字符串数据)并使用它上传文件。对于前端,我们使用 Angular 8,对于后端,我们使用 Java。我们使用 JBOSS 进行了设置,但我不知道这是否会有所不同。尝试提交时,我们收到一些无法修复的错误。在进行了多次反复试验后,我们不确定该怎么做。

文件

当我们将内容类型保留为未定义(在 post 方法中未指定选项)时,我们得到:“415 Unsupported media type content-type application/octet-stream not supported” 415 错误

如果我们通过选项将内容类型专门设置为未定义,它会说无法读取未定义的属性“长度”

当我们将内容类型设置为 multipart/form-data 时,我们得到:“无法解析多部分 servlet 请求;嵌套异常是 java.io.IOException:org.apache.tomcat.util.http.fileupload.FileUploadException:请求被拒绝因为没有找到多部分边界”我们也尝试用它设置边界,但它似乎不起作用。

正在使用的方法 多选项 和错误 未设置边界 任何建议将不胜感激。如果您需要任何其他信息,请告诉我,我会提供。

谢谢!

标签: javaangular8multipartform-data

解决方案


我无法从您提供的图像中看到您在代码中使用 HttpHeaders。

在请求中包含一个 HttpOptions 对象,如下所示:

var requestHeaders = new HttpHeaders();
requestHeaders.append('<key>', '<media type>');

const httpOptions = {
  headers: requestHeaders
};

this.http.post<any>(url, body, httpOptions).subscribe()

发布请求 Angular 文档


推荐阅读