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);
}