我编写了一个 Ionic 4 应用程序。我想更新它,似乎文件传输现在已被弃用,所以我删除了它。问题是,现在我无法下载文件。文档说它可以用 XMLHttpRequest 替换,如下面的链接所示,我按照该链接创建了一个新的“downloadFiles”函数。 https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html
但是这个解决方案让我在 CORS 问题上苦苦挣扎。我无法在服务器上设置正确的 CORS header (允许来源和内容),因为我无法编辑它。
现在使用 Ionic 下载文件的正确方法是什么?
提前致谢
最佳答案
终于找到了使用cordova-plugin-advanced-http插件的解决方案
首先安装插件
ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http
然后用它来获取blob,它绕过了cors问题
import { HTTP, HTTPResponse } from '@ionic-native/http/ngx';
constructor(
private adHTTP: HTTP
)
...
const reqOptions: any = {
method: 'get',
responseType: 'blob'
};
let res: HTTPResponse = await this.adHTTP.sendRequest(source, reqOptions);
let blob: Blob = res.data;
await this.file.writeFile(path, filename, blob, { replace: true });
关于angular - 由于文件传输已弃用,因此无法下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63668652/