Iron-ajax下载文件

时间:2017-02-17 14:41:55

标签: ajax download polymer

我想使用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实际上包含数据,但它不会触发浏览器下载文件。

3 个答案:

答案 0 :(得分:1)

我认为您需要在元素声明中使用handle-as="blob"属性。 Here您可以找到有关它的更多信息。

答案 1 :(得分:1)

为了将blob作为文件流式传输,您可以在以下链接中使用FileSaver.js: enter link description here

答案 2 :(得分:0)

您似乎正在尝试下载CSV,这是我使用的解决方法,似乎在Chrome和Safari上运行良好。它是关于下载数据然后使用虚拟<a>来触发使用嵌入式data:text作为URI的下载。 JS下载信用额转到How to export JavaScript array info to csv (on client side)?

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);
});