最近在Angular 12中遇到了使用FormData API的问题。 在使用HttpClient.post()将表单数据上传到服务器时,FormData参数将被编码为字符串而不是使用正确的multipart / form-data格式,这意味着在服务器端解析数据时可能会出现问题。
为了解决问题,我们需要手动创建一个FormData对象,并使用append()方法向其添加每个表单字段。然后,我们可以将此FormData对象作为第二个参数传递给HttpClient.post(),以确保它被正确编码为multipart / form-data格式。
以下是一个示例:
uploadFile(file: File): Observable {
const formData = new FormData();
formData.append('file', file);
return this.httpClient.post('uploadUrl', formData);
}
在上面的示例中,我们手动创建了一个FormData对象并向其中添加了一个名为“file”的文件字段。然后,我们通过将其作为第二个参数传递给HttpClient.post(),使用正确的multipart / form-data格式将表单数据发送到服务器。
总之,我们需要注意在使用FormData对象时,手动将表单字段添加到它中,以避免在发送数据时出现编码错误。