【问题标题】:Jquery $.ajax call for download excel not working?Jquery $.ajax 调用下载 excel 不起作用?
【发布时间】:2012-03-29 21:06:18
【问题描述】:

我正在使用 $.ajax 调用从 .aspx 页面下载 excel。但是ajax在Response.End之后抛出错误。这是我使用的代码。控制正在处理直到Response.End() 然后alert(textStatus); 给出解析器错误。

MasterPage.Master

$.ajax({
  type: "POST",
  url: "../Users/DownloadExcel.aspx",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  async: true,
  success: function(msg) {
           alert(msg);
          $.unblockUI();                        
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
      alert(textStatus);
      $.unblockUI();
  }
  });

下载Excel.aspx

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        GenerateData()
 End Sub
 Private Sub GenerateData()
      ' Some Logic
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    Response.AddHeader("content-disposition", "attachment;  filename=" & filename)
    Response.BinaryWrite(pck.GetAsByteArray())
    Response.End()
 End Sub

【问题讨论】:

标签: jquery asp.net vb.net


【解决方案1】:

只需使用带有任何必要查询字符串参数的 html 链接...除非您有特殊原因,否则不要使用 ajax 来调用文件下载。

【讨论】:

    【解决方案2】:

    您将无法使用 $.ajax 函数下载文件,因为它只处理文本相关格式(文本、xml、json),而 Excel 文件则不是。

    我看到你没有发送任何标题或数据,所以也许使用隐藏的 iFrame 可以帮助你。

    或者可能是这样: http://filamentgroup.com/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多