Javascript 从angularjs应用程序的REST接口下载文件
我对angularjs应用程序有一个愚蠢的问题。 设置是我有一个RESTAPI,我为它构建了一个angularjs前端。RESTAPI使用HTTP基本身份验证。现在我想允许用户下载从REST界面提供的文件 我可以使用$resource或$http服务下载该文件,这很好,但我最终将数据作为一个javascript变量中的blob。我无法转发文件,因此浏览器会弹出文件下载对话框,允许用户下载。我想到的另一个解决方案是将浏览器直接转发到文件的RESTAPI URL,但我不知道如何将基本HTTP凭据注入到头中,因此我将得到一个错误,而不是下载文件 有人知道如何解决这个问题吗 更新Javascript 从angularjs应用程序的REST接口下载文件,javascript,angularjs,rest,Javascript,Angularjs,Rest,我对angularjs应用程序有一个愚蠢的问题。 设置是我有一个RESTAPI,我为它构建了一个angularjs前端。RESTAPI使用HTTP基本身份验证。现在我想允许用户下载从REST界面提供的文件 我可以使用$resource或$http服务下载该文件,这很好,但我最终将数据作为一个javascript变量中的blob。我无法转发文件,因此浏览器会弹出文件下载对话框,允许用户下载。我想到的另一个解决方案是将浏览器直接转发到文件的RESTAPI URL,但我不知道如何将基本HTTP凭据注入
我使用提供的重复问题链接解决了问题。FileSaver.js帮我搞定了 要向用户显示Blob,可以将其插入页面的HTML元素中。您可以简单地将
{{variableNameofYourResult}}
添加到控制器中的某个位置
编辑:
要调用文件下载,您可以使用库(它有额外的依赖项,如flash 10)
对于没有flash依赖性的另一种可能的解决方案,请看一下这个。为了让它工作,我需要将{{}放入除内容类型之外的空页面中。据我所知,我将无法在该页面中执行angularjs javascript。因此,您不希望该页面包含rest结果之外的任何内容吗?我希望弹出下载文件对话框,以便用户可以将其存储在本地。这是一个二进制文件,在网页中显示没有任何意义。我标记了一个重复的问题,因为那里的答案应该有助于解决您的问题。如果flash是你的一个选择,你肯定应该看看Downloadify。谢谢,这个问题似乎概述了你的选择!可能重复的