我有一个文件下载的休息服务,我测试它是有效的,如果我只是复制粘贴到浏览器中的地址栏我可以看到浏览器弹出窗口要求我保存文件:
myaddress/assets/csvreport
但是使用带有下载按钮的AngularJs,如果我像这样使用它就没有弹出窗口;
$scope.downloadAssets = function () {
$http({
method: 'GET',
url: '/assets/csvreport',
params: criteria
})
我从我的html这样调用这个方法;
<input ng-click="downloadAssets()" value="Download" type="submit">
这只返回响应中的字符串,我看不到任何浏览器文件保存弹出窗口
任何想法?它需要在IE8上工作
答案 0 :(得分:1)
$http
不适用于下载文件。这是为了调用AJAX的东西。您只需将页面重定向到该网址:
$scope.downloadAssets = function () {
var querystring = buildQueryString( criteria )
window.location = '/assets/csvreport?' + querystring;
}
您可以在此处找到buildQueryString
功能:
How to build query string with Javascript;