我在使用angularjs
$http
提供商的javascript代码中进行了下载操作。
$http({
method: "POST",
url: "http://localhost:28494/api/print",
data: data,
responseType:'arraybuffer'
}).then(
function (response) {
var file = new Blob([response.data], {type: 'application/pdf'});
var objectUrl = URL.createObjectURL(file);
window.open(objectUrl,'_blank');
}
);
这会触发我的浏览器弹出窗口。我不想这样。
但我想直接下载。不要显示弹出窗口。
答案 0 :(得分:2)
您应该使用window.location.assign(objectUrl);
。这会强制窗口打开并显示URL。在您的情况下,它将下载文件。
答案 1 :(得分:0)
尝试这种替代方法。
window.location = item.objectUrl;
这将导致浏览器从服务器请求资源,服务器的响应必须包含Content-Disposition:attachment;
。它将使浏览器显示下载对话框。
P.S。如果要强制浏览器显示某个文件(资源)的下载提示,则必须在响应中包含Content-Disposition:attachment;
。