首页 > 解决方案 > 使用 javascript 下载 url 文件而不是打开文件

问题描述

我想使用 javascript/jquery 从服务器下载文件。

当按下按钮时,服务器会响应我要下载的 url 文件。

按钮:

<a class="btn btn-primary" id="exportInvoice">Export XML</a>

ajax 请求:

$('#exportInvoice').on('click', function () {                
     $.ajax({
           type: 'POST',
           dataType: 'json',
           url: '{{ route('export-xml') }}',
           data: {dateRange: dateRange},
           success: function (resp) {                        
                if(resp.error){
                    // error
                    alert(resp.msg);
                } else {
                    // success
                    alert(resp.msg);
                    window.location=resp.url;
                }
            }
       });
})

我正在使用 laravel 5.7 刀片生成 url。

当我单击按钮时,文件将打开而不是下载(因为 window.location=resp.url;

我在想......在进行ajax调用之后(成功响应时)......将下载属性和href设置为链接......但是我需要再次调用click事件来下载文件。

我怎样才能下载文件而不是打开???

标签: javascriptjquery

解决方案


window.location.href = resp.url

这将在同一页面开始下载,就像您单击没有任何目标的链接时一样_self


推荐阅读