javascript - XHR formdata 离子应用
问题描述
我对 xhr -> form-data 有一个奇怪的行为:
我开发了一个符合 Android 和 IOS 的 Ionic 应用程序。
我正在尝试使用 blob 和 formdata xhr 上传文件,行为是:
IOS - 效果很好。
Android - 在某些 Android 版本中运行良好,但 LG 和小米等设备根本没有响应。
这是我的代码:
const uploadInvoice = async(data, type = "expenses", file, cb) => {
if (type === "incomes") {
delete data.budget;
}
data.invoicedate = data.date;
data.title = encodeURI(data.title);
const formData = new FormData();
const extention = file.name.split(".").pop();
const newFileModified = new File(
[file],
`${Date.now().toString()}.${extention}`
);
formData.append("file", newFileModified);
let xhr = new XMLHttpRequest();
xhr.open("POST", `${BASE_URL}/api/management/file`);
Object.keys(data).map(key => {
xhr.setRequestHeader(key, data[key]);
});
xhr.setRequestHeader("client", "app");
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
//if complete
if (xhr.status === 200) {
return cb(true);
} else {
return cb(false); //otherwise, some other code was returned
}
} else {
return cb(false);
}
};
xhr.send(formData);
};
请注意,我发送了 http 请求(而不是 https),但我拥有上传 http 请求的正确权限。
我通过互联网找到了没有成功的解决方案:-/
谢谢!!
解决方案
推荐阅读
- github - GitHub 存储库如何拥有 165 次查看,但只有 1 个唯一访问者?
- python - 如何更新pytest的源文件?
- c - 在 C 中修改链表中的数据?
- recursion - Postscript中通过递归的分形Pifagor树
- ios - Xcode 11 Firebase auth for Mac app has error 访问钥匙串时出错
- c# - 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或不可访问
- javascript - 如何在 React Navigation 的 Drawer 内调用函数而不是屏幕?
- node.js - Redis 发布/订阅多个消费者
- scheme - 这个 Scheme 解释器输出的含义是什么?
- c++ - C++ 方法参数可以是原始的或对象的