通过jQuery.Ajax下载文件

我在服务器端有一个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流检索的我想知道如何打开文件下载窗口,用户可以用它在本地保存文件吗?

2020/03/28 19:38:58

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

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

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