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

问题描述 投票:1回答:2

我有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' });

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

 consumes = "multipart/form-data")

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

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

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

angular post
2个回答
2
投票

因为你可以创建一个单独的对象,但它完全依赖于支持,它们如何处理这个输入数据。

喜欢,

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

0
投票

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

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

}

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

return this.http.post(url, dataObj, httpOptions);
© www.soinside.com 2019 - 2024. All rights reserved.