Jquery$.ajax调用下载excel不工作?
我正在使用$.ajax调用从.aspx页面下载excel。但是ajax在Response.End之后抛出错误。这是我使用的代码。控件一直在处理,直到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可能会对您有所帮助 或者可能是这样: 只需使用带有任何必要查
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