如何在Angular2中使用POST发送更多对象?

时间:2018-09-03 08:46:21

标签: angular post

我有3个对象,1º->数据用户(姓名,姓氏,dni等),2º数据车(颜色,价格等)其他数据。

如果我想使用Angular 2+->

发送此数据
  return this.http.post(url, dataUser, dataCar, otherData, { responseType: 'text' });

我收到错误消息是因为我只能发送1个数据...但是我需要发送2个或3个或更多数据...

然后我使用->

 this.formData = new FormData();
 this.formData.append("dataUser", new Blob([JSON.stringify(dataUser)],
 { type: "application/json" }));
 this.formData.append('dataCar', new Blob([JSON.stringify(this.dataCar)],
 { type: "application/json" }));
 this.formData.append('otherData', new Blob([JSON.stringify(this.otherData)],
 { type: "application/json" }));

现在我可以发送我想要的东西

 return this.http.post(url, formData, { responseType: 'text' });

但是在我的服务器(SpringBoot)的代码中,我需要添加->

 consumes = "multipart/form-data")

我的问题是->对吗?我将对象解析为Blob,因为无法将3个对象发送到服务器。

我的服务器真的不希望Files-> multipart / form-data。

然后,我不知道如何使用Angular 2+发送多个对象。我找到了这个解决方案(formData),但我想做好。

2 个答案:

答案 0 :(得分:2)

您可以创建一个对象,但完全不依赖于对象,这取决于它们如何处理输入数据。

喜欢

 return this.http.post(url, {dataUser: dataUser, dataCar: dataCar, otherData: otherData }, { responseType: 'text' });

答案 1 :(得分:0)

您应该创建一个包含所有数据的对象。像这样

const dataObj = {
  dataUser: // required user data here
  dataCar: // required car data here

}

并将此单个对象发送到服务器。

return this.http.post(url, dataObj, httpOptions);