Angular 以角度方式发布阵列参数的正确方法是什么?

Angular 以角度方式发布阵列参数的正确方法是什么?,angular,post,Angular,Post,我正在尝试在Angular应用程序中发布一个数组字段,我很难找到正确的数据格式 使用CURL时,我可以使用--data属性成功地发布数据: 'fields[Name]=Test&fields[Email]=test@test.com&fields[Message]=POST Message!' 我尝试如下设置我的数据参数: let fields = { 'fields': { 'Name': this.contact.name, 'Email':

我正在尝试在Angular应用程序中发布一个数组字段,我很难找到正确的数据格式

使用
CURL
时,我可以使用
--data
属性成功地
发布
数据:

'fields[Name]=Test&fields[Email]=test@test.com&fields[Message]=POST Message!'
我尝试如下设置我的数据参数:

let fields = {
   'fields': {
      'Name': this.contact.name,
      'Email': this.contact.email,
      'Message': this.contact.message
    }
};
但这似乎没有正确设置要发布到API中的数据

设置数据以匹配以下预期参数的正确方法是什么:

fields[Name]
fields[Email]
fields[Message]

感谢您的支持。

我没有在对象中设置参数,而是将它们设置到FormData中,一切似乎都按照预期工作

const formData = new FormData();

formData.append('fields[Name]',this.contact.name);
formData.append('fields[Email]',this.contact.email);
formData.append('fields[Message]',this.contact.message);

如果您在后端使用console.log()调用req.body,它有什么格式?我认为你的数据数组有点深,你只需要让字段={name,email,message}而不是把它包装在一个额外的
字段中。我将其更改为“接受”:“application/json”
,然后设置了一个
新表单数据()
,它似乎工作得更好。
Sorry I couldn't catch your issue. If you are Post request and using httpClient 
Then there is a scope that you can directly pass object. It seems your field value is a object So you can directly pass as body in post request

 this.httpClient.post(url, **fields**, htpHeader).subscribe(...

I can see @zeropsi also gave an answer. So you can directly pass such formData also.