我想使用Polymer的Iron-Ajax使用下载文件。
<iron-ajax
id="fileDownloader"
headers='{"Auth" :"token"}'
url="/my/server/rest/download/csv/{{id}}"
method="GET"
content-type="application/json"
on-response="downloadCsvCallLoaded"
on-error="downloadCsvCallFailed">
</iron-ajax>
reposnse实际上包含数据,但不会触发浏览器下载文件。
我认为您需要在元素声明中使用 handle-as="blob"
属性。在这里,您可以找到有关它的更多信息。
为了将斑点流式传输为文件,您可以在link上使用filesaver.js。在此处输入链接描述
看来您正在尝试下载CSV,这是我使用的解决方法,似乎在Chrome和Safari上工作正常。这是要下载数据,然后使用虚拟<a>
使用嵌入式data:text
作为URI触发下载。JS下载信用转到如何将JavaScript数组信息导出到CSV(在客户端)?
ironAjax.addEventListener("response", (event) => {
let csvContent = "data:text/csv;charset=utf-8," + event.detail.response;
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "filename.csv");
document.body.appendChild(link); // Required for FF
link.click(); // This will download the data file named "my_data.csv".
document.body.removeChild(link);
});