Javascript 角度10 | Http post |字符串数组追加FormData

Javascript 角度10 | Http post |字符串数组追加FormData,javascript,angular,typescript,http,post,Javascript,Angular,Typescript,Http,Post,我必须向api端点发出post请求,但我得到一个错误状态500 name: "HttpErrorResponse" ok: false status: 500 statusText: "Internal Server Error" 这是我的代码: var selectedIds = ["31"]; let sendData = new FormData(); sendData.append('auth', this.dataServi

我必须向api端点发出post请求,但我得到一个错误状态500

name: "HttpErrorResponse"
ok: false
status: 500
statusText: "Internal Server Error"
这是我的代码:

var selectedIds = ["31"];
let sendData = new FormData();
sendData.append('auth', this.dataService.REG_AUTH);
sendData.append('identifier', identifier);
sendData.append('selected[]', selectedIds); 

this.http.post<any>('APIENDPOINT', sendData).subscribe(data => {
  console.log(data);
}, error => {  
  console.log(error);
});
到目前为止我所知道的:

angular似乎没有序列化数据,因此我尝试了一些硬编码修复,但这些都不起作用:

sendData.append('selected%5B%5D', '%2231%22'); 
sendData.append('selected%5B%5D', '31');
sendData.append('selected%5B%5D', 31);
sendData.append('selected%5B%5D', '%5B%2231%22%5D'); 
sendData.append('selected%5B%5D', selectedIds); 
sendData.append('selected%5B%5D', JSON.stringify(selectedIds));
如果我使用
selected
而不是
selected[]
,那么我不会得到任何错误,但显然没有更新任何数据,因此我非常确定这是一个序列化/解析问题。

来自:

FormData的append()方法只能接受string或blob的对象 类型。如果需要附加数组,请使用JSON.stringify()方法 将数组转换为有效的JSON字符串


statusCode 500
是内部服务器错误,是服务器端问题。因此,最好检查
API
是否可以接收您的请求

FormData的
append()
方法接受
string
blob
类型,以便您可以使用
JSON.stringify()
方法(
FormData.append(
selectedIds',JSON.stringify(selectedIds));
)。所以试试这个:

让selectedds=[“31”];
设sendData=newformdata();
append('auth',this.dataService.REG\u auth);
追加('identifier',identifier);
append('selectedIds',JSON.stringify(selectedIds));
this.http.post('apidentpoint',sendData).subscribe(data=>{
控制台日志(数据);
},错误=>{
console.log(错误);
});

我明白了:
所选[]:[“31”]
您能同时检查其他表单数据值吗?这很奇怪。如果只附加一个值会发生什么?问题确实出在其他地方。尽管var在那里,但它是错误的var。感谢您的帮助和时间。
sendData.append('selected%5B%5D', '%2231%22'); 
sendData.append('selected%5B%5D', '31');
sendData.append('selected%5B%5D', 31);
sendData.append('selected%5B%5D', '%5B%2231%22%5D'); 
sendData.append('selected%5B%5D', selectedIds); 
sendData.append('selected%5B%5D', JSON.stringify(selectedIds));
formData.append('selected[]', JSON.stringify(selectedIds));