我有一个名为"/downloadUserAction"的端点,用于收集数据并下载CSV文件。我的挑战是,当我调用端点时使用按钮的点击功能时,文件不会被下载,但当我直接在浏览器中访问端点时,它会下载。
经过研究,我发现不能使用AJAX来下载文件。这很有道理,因为当我点击按钮时,我看到端点被命中,并且文件内容在网络选项卡中传递,但没有文件被下载到客户端。
这是我在Javascript方面所做的全部工作,只是在我的页面上使用数据表按钮插件功能来调用我的端点。
$(document).ready(function () {
var table = $("#userActivity").on('init.dt', function() {
}).DataTable({
dom: 'Blfrtip',
buttons: [
{
extend: 'csvHtml5',
text: 'NLP Search Download',
action: function ( e, dt, node, config ) {
$.ajax({
url : window.location + "/downloadUserAction?draw=3&search%5Bvalue%5D=NLP_SEARCH&order%5B0%5D%5Bcolumn%5D=6&order%5B0%5D%5Bdir%5D=desc"
});
}
}
],
是否有其他调用我的端点的方法可以强制客户页面下载?
附注:我的数据表正在使用服务器端处理,否则我将使用datatables csv导出按钮。
a.remove()
删除锚点。 - adi518