当前位置: 首页 > 面试题库 >

从Ajax下载文件(某种)

郭和硕
2023-03-14
问题内容

我的GSP中有这个ajax调用:

$.ajax({
    url: '${request.contextPath + '/Ticket/passAll'}',
    type: 'POST',
    data: data,
    success: function() {
        alert("Success");
    }
});

这是我的控制器操作的代码块:

response.setHeader("Content-disposition", "attachment; filename=sample.csv")
response.contentType = "application/vnd.ms-excel"

def outs = response.outputStream
def cols = [:]

tickets.each() {
    outs << it.ticketNo + ";" + it.subject
    outs << "\n"
}

outs.flush()
outs.close()

我从通过$
.Ajax方法从视图传递的数据中获取票证列表。比我将数据格式化为CSV格式,然后我想将数据导出为CSV文件,但没有任何反应。数据已发送到客户端,但是由于内容配置不正确,因此没有可供下载的文件。我想念什么?我试图做类似的事情:

$.ajax({
    url: '${request.contextPath + '/Ticket/passAll'}',
    type: 'POST',
    data: aoData,
    dataType: 'text',
    success: function(result) {
        var uri = 'data:application/csv;charset=UTF-8,' + encodeURIComponent(result);
        window.open(uri, 'tiketi.csv');
    }
});

并在控制器中生成纯字符串,但是那样我得到的文件没有扩展名是不可接受的。

我该如何实现?谢谢。


问题答案:

您不需要通过ajax进行操作。该页面不会重定向文件下载。



 类似资料:
  • 问题内容: 我想在浏览器中使用ajax和ActionResult下载文件。该文件已下载并从我的ActionResult返回。 我看到Http查询正常,并且在响应正文中看到了数据。问题是不建议将该文件保存在浏览器中。 一切似乎都很好。我在教程和论坛中看到的所有内容都和我一样,但我没有说过XD。我不明白我和其他人之间有什么区别。 这是我的ActionResult: 这是我的javascript: 谢谢

  • 问题内容: 我正在尝试使浏览器下载从ajax响应接收到的pdf文件。 受jquery ajax下载pdf文件启发,我模拟了如下单击/下载事件: 不幸的是,这仅适用于Chrome,不适用于Firefox + IE。当我尝试在最后两个浏览器中触发它时,没有任何反应。 由于从CMS继承,脚本和标记被放置在iframe中,但是我不确定这是否有影响。 关于如何针对所有现代浏览器进行优化的想法? 问题答案:

  • 我有一个javascript应用程序,它向某个URL发送ajax POST请求。响应可能是一个JSON字符串,也可能是一个文件(作为附件)。我可以很容易地在ajax调用中检测到内容类型和内容配置,但是一旦检测到响应包含文件,我如何提供客户端下载它呢?我在这里读过很多类似的文章,但没有一篇能提供我想要的答案。 请,请,请不要发布建议我不应该为此使用ajax或者我应该重定向浏览器的答案,因为这些都不是

  • 问题内容: 我正在应用程序中下载动态文件,并使用iframe来模拟ajax。我正在做的是,当下载请求发出后,我将创建一个动态的不可见iframe,并将iframe的src设置为下载网址。我能够成功下载该文件,但要求是显示一个下载下载指示器一旦开始下载,并在下载对话框出现后立即完成。我在创建iframe后提供了回调,以显示下载指示器已成功运行,并在iframe的“ onload”上提供了另一种方法,

  • 问题内容: 我有一个JavaScript应用程序,可将ajax POST请求发送到某个URL。响应可能是JSON字符串,也可能是文件(作为附件)。我可以在ajax调用中轻松检测Content-Type和Content- Disposition,但是一旦检测到响应中包含文件,如何为客户端提供下载文件?我在这里阅读了许多类似的主题,但是没有一个主题提供我想要的答案。 拜托,拜托,请不要发布暗示我不应该

  • 问题内容: 我正在尝试实施一项服务,该服务会自动使用请求的文件开始下载。 这是我的AJAX呼叫: 这是我的Spring Service方法GET: 当我的客户端从服务器请求现有文件时,将执行AJAX 方法,但该文件甚至没有下载。我做错什么了吗? 问题答案: 不要使用ajax,只需将window.location.href设置为文件的URL,然后在服务器脚本中设置http内容处理标头即可强制浏览器保