javascript - 从 angularjs 应用程序的 REST 接口(interface)下载文件

标签 javascript angularjs rest

我对 angularjs 应用程序有一个愚蠢的问题。 设置是我有一个 REST API,我为其构建了一个 angularjs 前端。 REST API 使用 HTTP 基本身份验证。我现在想让用户下载 REST 界面提供的文件。

我可以使用 $resource 或 $http 服务下载文件,这很棒,但我最终只是将数据作为 javascript 变量中的 blob 来下载。我无法转发文件,因此浏览器会弹出文件下载对话框,允许用户下载它。我想到的另一个解决方案是将浏览器直接转发到文件的 REST api URL,但我不知道如何将基本 HTTP 凭据注入(inject) header ,因此我会收到错误而不是下载文件。

有人知道如何解决这个问题吗?

更新

我使用提供的重复问题链接解决了该问题。 FileSaver.js 帮我解决了这个问题!

最佳答案

要向用户显示 Blob,您可以将其插入页面的 HTML 元素中。您可以简单地在 Controller 中的某个位置添加 {{variableNameofYourResult}}

编辑: 要调用文件下载,您可以使用 Downloadify库(具有额外的依赖项,例如 flash 10)

有关不依赖闪存的另一种可能的解决方案,请查看此 blog post .

关于javascript - 从 angularjs 应用程序的 REST 接口(interface)下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717839/

相关文章:

javascript - 在对象数组中添加数字

javascript - 如何在javascript中合并两个可选数组

java - Jersey 和 Java 8(Lambda 表达式)

javascript - 403 响应代码 - 使用 Cowin setu API 时请求被阻止

java - 如何从 java 方法临时替换 tomcat 的 deployment.properties 中的属性?

javascript - 让 d3.text 顺序运行?

javascript - 当时间到达 00h :59m : 59s 之后时,我的小时返回 0

AngularJS Material md-datepicker白屏背景

javascript - angularjs 两个 Controller 共享工厂

javascript - 通过单击 AngularJS 中的按钮打开信息窗口