Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery$.ajax调用下载excel不工作?_Jquery_Asp.net_Vb.net - Fatal编程技术网

Jquery$.ajax调用下载excel不工作?

Jquery$.ajax调用下载excel不工作?,jquery,asp.net,vb.net,Jquery,Asp.net,Vb.net,我正在使用$.ajax调用从.aspx页面下载excel。但是ajax在Response.End之后抛出错误。这是我使用的代码。控件一直在处理,直到Response.End()然后警报(textStatus)给定解析器错误 母版页,母版 下载Excel.aspx 您将无法使用$.ajax函数下载文件,因为它只处理与文本相关的格式(文本、xml、json),而Excel文件则不能 我看到您没有发送任何标题或数据,所以使用隐藏的iFrame可能会对您有所帮助 或者可能是这样: 只需使用带有任何必要查

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

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

我看到您没有发送任何标题或数据,所以使用隐藏的iFrame可能会对您有所帮助

或者可能是这样:

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

您是否确认responseText包含有效的JSON(因为您告诉jquery它应该使用JSON)?请在此处查看此答案。
$.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();
  }
  });
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