前端如何做下载?

后端写了下载方法,直接在网页地址拼下载接口可以返回文件。
但是写在ajax后,点击按钮调用方法无法下载文件。
前端的下载要怎么写?

function downloadInfo(id) {
    $.ajax({
        url: "/web/downloads",
        data:{"id":id},
        type: 'post',
        async: false,
        success: function(data) {
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            console.log(XMLHttpRequest.status);
            console.log(XMLHttpRequest.readyState);
            console.log(textStatus);
        }
    })
}

页面是直接用button点击后调用downloadInfo(id)这个方法。

阅读 4.9k
5 个回答

按钮点击后执行的函数可以这么写就可以了

window.open(url(你拼写的接口url))

点击直接跳到新的页面就可以了,不用这么写。

下载一般都是点击url进行下载的,如果你考虑下载权限的问题,可以把验证信息token放在url里面,后端就可以拿到进行判断

方法改成GET,然后用a标签+download属性(下载文件名)试试

是不是下载 跟后台返回的ContentType有关系 如果他写好了 你直接转过去就下载了 如果他没写好 你怎么也下载不了

推荐问题