如何使用AngularJS $ http服务制作下载按钮

时间:2016-09-12 10:55:31

标签: angularjs ajax

是否可以通过按钮触发下载并在后台使用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>

2 个答案:

答案 0 :(得分:2)

改变这个:

  ng-click="startDownload()"

答案 1 :(得分:0)

在阅读了大量关于类似问题的问题之后,它强调不可能在用户磁盘上保存文件,这是来自AJAX请求。

Stackoverflow上查看此问题。