在angular中,我想下载一个包含用户数据csv的文本文件。通常我有一个带有post动作的表单,但是我希望用户保持在同一页面上,但是返回csv数据时没有任何页面引用。以下是我的帖子命令:
$http({
url: "api/getUserData",
method: "POST",
data:{user_id:app.user_id}
}).success(function(data, status, headers, config) {
// data gets returned here
}).error(function(data, status, headers, config) {
$scope.status = status;
});
我的问题是,"数据"从帖子回来的是一个csv文件。如何实际获取数据"下载"用户的计算机而不是生活在javascript中?这甚至可能吗?
答案 0 :(得分:1)
Here 是解决方案的链接。它使用HTML5 FileSaver API将文件保存为BLOB
答案 1 :(得分:0)
你可以这样做:
最后,删除插入的元素。
$http({
url: "api/getUserData",
method: "POST",
data:{user_id:app.user_id}
}).success(function(data, status, headers, config) {
// data gets returned here
var anchor = angular.element('<a/>');
angular.element(document.body).append(anchor); // Attach to document
anchor.attr({
href: 'data:attachment/csv;charset=utf-8,' + encodeURI(data),
target: '_blank',
download: 'myFileName.csv'
})[0].click(); // fire a click event.
anchor.remove(); // Clean it now ...
}).error(function(data, status, headers, config) {
$scope.status = status;
});