通过jQuery.Ajax下载文件

JavaScript

伽罗Itachi

2020-03-28

我在服务器端有一个Struts2操作,用于文件下载。

<action name="download" class="com.xxx.DownAction">
    <result name="success" type="stream">
        <param name="contentType">text/plain</param>
        <param name="inputName">imageStream</param>
        <param name="contentDisposition">attachment;filename={fileName}</param>
        <param name="bufferSize">1024</param>
    </result>
</action>

但是,当我使用jQuery调用操作时:

$.post(
  "/download.action",{
    para1:value1,
    para2:value2
    ....
  },function(data){
      console.info(data);
   }
);

在Firebug中,我看到数据是通过Binary流检索的我想知道如何打开文件下载窗口,用户可以用它在本地保存文件吗?

第3826篇《通过jQuery.Ajax下载文件》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
2020.03.28

没有人发布此@Pekka的解决方案 ...所以我将其发布。它可以帮助某人。

您不需要通过Ajax进行此操作。只需使用

window.location="download.action?para1=value1...."

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android