Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当您有来自服务器的blob响应时,如何填充提示浏览器窗口?_Javascript_Angularjs_Export To Excel - Fatal编程技术网

Javascript 当您有来自服务器的blob响应时,如何填充提示浏览器窗口?

Javascript 当您有来自服务器的blob响应时,如何填充提示浏览器窗口?,javascript,angularjs,export-to-excel,Javascript,Angularjs,Export To Excel,我在剑道网格上有exportChallenges按钮,可以使用angularJs工厂将网格数据导出到excel。我从服务器端收到rest服务响应(Blob),但它不会提示浏览器上的用户保存、打开或下载选项 如何使用Angularjs或本机javascript解决此问题 export.js $scope.exportChallenges = function() { processFactory.exportPrcChallenges($stateParams.processId, c

我在剑道网格上有
exportChallenges
按钮,可以使用angularJs工厂将网格数据导出到excel。我从服务器端收到rest服务响应(Blob),但它不会提示浏览器上的用户保存、打开或下载选项

如何使用Angularjs或本机javascript解决此问题

export.js

$scope.exportChallenges = function() {
      processFactory.exportPrcChallenges($stateParams.processId, challengeType);
      .success(function(response) {
          var blob = new Blob([response.data], {
              type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
          });
          debugger;
          var objectUrl = URL.createObjectURL(blob);
          window.open(objectUrl);
      });
  };

打开blob取决于浏览器(即IE在API中有自己的实现)。这样做:

var blob = new Blob([response.data], {type: contentType});

//call the save blob API in IE
if(window.navigator && window.navigator.msSaveOrOpenBlob) {
    //save or open prompt in IE
    //there's a save prompt too, depending on what you need
    window.navigator.msSaveOrOpenBlob(blob, "filename");
} else { //other browsers
    var objectUrl = URL.createObjectURL(blob);
    window.open(objectUrl);
}