AJAX调用返回数据但不提示下载

时间:2012-04-17 12:54:35

标签: javascript jquery

我有一个成功调用页面的ajax调用本身可以正常工作。单击按钮,然后下载PDF。但是,当我使用相同的请求类型和URL进行AJAX调用时,会返回data,但不会提示下载。

我的电话:

    $("#download-pdf").live('click', function(){
      $.ajax({
        url: $(this).parents('form').attr('action'),
        type: 'POST',
        success: function(data){
          console.log(data);
        }
      });
      return false;
    });

将数据作为未解析的PDF返回。所以我知道那里的信息。它只是不会导致下载。任何技巧?

2 个答案:

答案 0 :(得分:3)

强制下载的唯一方法是使用“标准”表单提交方法刷新页面。使用Ajax,您将收到原始输出数据(PDF),并且不会弹出任何保存对话框

答案 1 :(得分:3)

使用AJAX时无法强制下载。

请阅读:Force download a pdf link using javascript/ajax/jquery

如果您只是提交表单,那么您可以通过发送相应的标题告诉浏览器下载文件:

Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=file.pdf");

Response.ContentType = "application/pdf";
Response.WriteFile(Server.MapPath(@"~/file.pdf"));

Response.End();