【发布时间】:2021-04-30 11:31:35
【问题描述】:
我的应用程序中有一个案例,我需要将数据作为表单数据发送到服务器。数据包括一条消息和一个可选的文件列表。我面临的问题是发送请求时它没有正确形成。
请求负载
预期(浏览器中具有相同请求的示例)
实际结果是负载以某种方式被 URL 编码。
代码示例
sendData({ id, message, files }) {
const config = {
headers: {
'Content-Type': 'multipart/form-data'
}
};
const payload = new FormData();
payload.append('message', message);
if (files && files.length > 0) {
files.forEach((file) => {
payload.append(`files`, file, file.name);
});
}
return AXIOS_INSTANCE.post(
`/api/save/${id}`,
payload,
config
);
}
从上面可以看出,我正在使用axios,并且我正在尝试使用FormData 来格式化数据。根据我的研究,NativeScript 似乎过去不支持通过 XHR 的二进制数据 - 但是查看 this merge request on GitHub 看起来它似乎在一年前就已修复。
所以我怀疑我做错了什么,也许有替代使用 FormData 的替代方法,或者我不应该使用 axios 来处理这个特定请求?
版本号
-
nativescript6.8.0 -
tns-android6.5.3 -
tns-ios6.5.3
【问题讨论】:
标签: nativescript multipartform-data binary-data nativescript-vue