【发布时间】: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
【问题讨论】:
-
您是否确认 responseText 包含有效的 JSON(因为您告诉 jquery 它应该期待 json)?
-
在这里看看这个答案。 stackoverflow.com/questions/149821/…