javascript - 如何防止 $window.location.href 停止正在进行的请求?

标签 javascript angularjs firefox

在我的 AngularJS (AngularJS 1.3) 应用程序中,有一个用户可以下载 pdf 文件的地方。 这是在 Controller 中使用以下方法完成的:

$window.location.href = 'pdf/123456';

将文件保存在用户计算机上。浏览器中的 url 从未真正更改,用户仍然位于 Angular 应用程序中的同一页面上。

但是,当我以这种方式设置位置时,使用 Firefox 时正在进行的请求会被取消。使用Chrome没有问题。我想出的唯一解决方案是等待其他请求,直到下载 pdf,但由于这可能需要一些时间,我想在下载完成之前启动它们。

有什么办法可以解决这个问题吗?我可以通过其他方式下载该文件吗?我不想打开弹出窗口。

最佳答案

下载文件的另一种方法是创建一个以文件为目标的 <a> 标记并模拟对其的点击。像这样:

var a = document.createElement('a');
a.href = 'pdf/123456';
a.download = 'document_name';
a.target = '_blank';
a.click();

关于javascript - 如何防止 $window.location.href 停止正在进行的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41758993/

相关文章:

AngularJS:如何使用 ng-animate 在加载时为 ng-repeat 设置动画

css - 如何使 Firefox 按钮看起来像 Chrome 按钮(边框,边框半径,填充,边距..)

Android 6.0 Chrome 上传文件而不是 Firefox

javascript - Html5 Canvas Bezier 上的虚线曲线

javascript oop 命名空间和继承

javascript - 循环内容无法正确显示

angularjs - Angular UI路由器: How to go to the same state with different $stateParam?

javascript - 你如何在 Javascript 中获取音频的分贝级别

angularjs - 如何将 Angular $resource 工厂(不是服务)转换为 ES6

python , flask , 'Hello World' : No browser reaction