问题描述
我写了一个Ionic 4应用程序。我想更新它,似乎文件传输现在已弃用,因此我将其删除。问题是,现在我无法下载文件。文档说它可以用XMLHttpRequest代替,就像下面的链接一样,我遵循此链接创建了一个新的“ downloadFiles”功能。 https://cordova.apache.org/blog/2017/10/18/from-filetransfer-to-xhr2.html
但是这种解决方案使我在CORS问题上感到挣扎。我无法在服务器上设置正确的CORS标头(允许来源和内容),因为我无法对其进行编辑。
多谢
解决方法
最后找到了带有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 });