如何在角度6中发送多部分请求?

时间:2019-05-08 09:24:31

标签: spring-boot angular6 multipartform-data multipart

我需要发送多部分请求。

提交表单时,后端出现错误,

由处理程序执行引起的已解决异常:org.springframework.web.HttpMediaTypeNotSupportedException:不支持内容类型'application / octet-stream'

我能够从高级休息客户那里获得帮助,但遇到了棱角问题。

下面的后端是REST端点。

@PostMapping("/createCIF")
public Response < Map < String, Object >> createCIF(
@RequestPart("actDocs") List < MultipartFile > actDocs,
 @Valid @RequestPart("createCIFReq") CreateCIFReq createCIFReq,
 HttpServletRequest request) throws URISyntaxException {

}

下面是component.ts文件中的角侧面代码。

let formData = new FormData();
formData.append('actDocs', this.userInfoService.mulitPartFileArray);
 formData.append('createCIFReq', JSON.stringify(this.userInfo));

   this.userInfoService.createCif(formData)
        .pipe(first())
        .subscribe(
             data => {
   }
 }

角端服务级别代码

createCif(formData): any {
    return this.http.post<any>(this.url + 'createCIF',  
 formData)
    .pipe(map(cif => {
  return cif;
     }));
   }

1 个答案:

答案 0 :(得分:0)

我整天都在这个问题上陷入困境。

Angular似乎无法为JSON部分设置正确的内容类型。 我设法通过创建一个Blob解决了这个问题:

let formData = new FormData();
formData.append('actDocs', this.userInfoService.mulitPartFileArray);
formData.append(
    'createCIFReq',
    new Blob([JSON.stringify(this.userInfo)], {type: 'application/json'})
);

希望有帮助。