我目前有一个角度服务,其中请求被发送到后端以生成文件,前端和后端都共享一个请求ID,以便稍后为该任务进行通信。
文件生成完成后,后端发回一个成功标志,其中包含"表格api / filegenerator / requestID:/ download"的下载URL,在调用时,生成的文件将被传递回来。
如何调用$ http.post(...)。success(),我可以直接调用该下载链接而无需用户交互? (没有下载按钮或HTML中的任何内容)
答案 0 :(得分:3)
您可以使用$ window.location
$http.post(...)
.then(function(url) {
$window.location = url;
}
或模拟用户点击假冒按钮
function downloadURIWithFakeClick(uri, name) {
var link = document.createElement("a");
link.download = name;
link.href = uri;
link.click();
}
downloadURIWithFakeClick(url);
您可以在此示例中看到两个解决方案http://plnkr.co/edit/WbNvAth8tP1yR3sRmkAw?p=preview