从onClick方法返回的下载文件

时间:2018-04-14 09:27:16

标签: javascript jquery

假设我有一个函数进行API调用,返回一个URL - 如何使用该链接开始下载。

所以我有这个功能:

function myF() {

  $.ajax{
     //Some GET cal

     return url
  }

}

然后按一下按钮:

<button onclick="myF()">some</button>

3 个答案:

答案 0 :(得分:1)

$.ajax{
//your request
success: function() {
        window.location = '<YOUR_URL>'; //url that you got from response
    }
}

如果你的回复网址是同一个来源,这是有效的。

您可以在此处找到更多信息:download file using an ajax request

答案 1 :(得分:1)

您可以尝试使用html5 download属性,参见示例:

$.ajax({
    // config
}).then((res) => {
    var a = document.createElement('a');
    a.download = 'your file name';
    a.href = res.data.url;
    a.click();
})

答案 2 :(得分:0)

如果它是一个简单的网址,我更喜欢使用<a>元素,然后在CSS中给它一个按钮外观:

<a href="download-url" class="btn">Click here to Download</a>

如果它是用JavaScript生成的网址,您可以通过DOM操作添加网址:

document.getElementsByClassName("btn")[0].href = "download-url";