gpt4 book ai didi

javascript - Angular 10 |邮寄 |字符串数组追加 FormData

转载 作者:行者123 更新时间:2023-12-03 07:05:57 26 4
gpt4 key购买 nike

我必须向 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);
});

问题出在这一行:sendData.append('selected[]', selectedIds); 我不知道如何将数组传递给 FormData。

这是我们 android 应用程序中的一个工作示例。我需要用 angular/typescript 语法转换这个请求:

@JvmSuppressWildcards
@FormUrlEncoded
@POST("APIENDPOINT")
fun addData(
@Field("auth") auth: String,
@Field("identifier") identifier: String,
@Field("selected[]") selected: ArrayList<String>
): Call<ResponseBody>

目前我所知道的:

似乎 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[],那么我不会收到任何错误,但显然没有数据更新,所以我很确定这是一个序列化/解析问题。

最佳答案

来自 this answer :

FormData's append() method can only accept objects of string or blobtype. If you need to append the array, use JSON.stringify() method toconvert your array into a valid JSON string.

formData.append('selected[]', JSON.stringify(selectedIds));

关于javascript - Angular 10 |邮寄 |字符串数组追加 FormData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63901962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com