是否可以通过按钮触发下载并在后台使用AngularJS $http
服务来提供文件?
我想要一个简单的按钮,无需打开新窗口即可启动文件下载。此外,我必须在标题内设置Authorization
。
到目前为止,我做到了这一点:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$scope.startDownload = function() {
var auth = ""; //username + password
$http.defaults.headers.common['Authorization'] = auth;
//this will return a file
$http({
method: 'GET',
url: 'https://upload.wikimedia.org/wikipedia/commons/1/1c/FuBK_testcard_vectorized.svg?download'/*,
headers: {
'Authorization': 'Basic efhjwefjfbweikabfkwhfb'
}*/
}).then(function(){
//????
});
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<button type="button" ng-click="startDownload()">Download</button>
</div>
答案 0 :(得分:2)
改变这个:
ng-click="startDownload()"
答案 1 :(得分:0)
在阅读了大量关于类似问题的问题之后,它强调不可能在用户磁盘上保存文件,这是来自AJAX请求。
在Stackoverflow上查看此问题。