我将此代码作为excel下载程序。生成excel之后。 但我有一个错误。如标题中所述。
错误发生在以下行: var strResponeText = XMLHttpRequestObject.responseText;
var strUrl = "POSSellThroughReportExcelOpener.aspx?getstatus=1&DateFrom=" + hdnDateFrom.value + "&DateTo=" + hdnDateTo.value + "&customer_id=" + hdnCustomerID.value + "&intdisplayby=" + hdnDisplayBy.value + "&monthorweek=" + hdnMonthOrWeek.value;
if (XMLHttpRequestObject) {
XMLHttpRequestObject.open("POST", strUrl);
XMLHttpRequestObject.onreadystatechange = function () {
if ((XMLHttpRequestObject.readyState == 4) && (XMLHttpRequestObject.status == 200)) {
var hdnRedirectUrl = document.getElementById("hdnRedirectUrl");
var strResponeText = XMLHttpRequestObject.responseText;
var intResponse = new Number(strResponeText);
var spanCallBackStatus = document.getElementById("spanCallBackStatus");
var trClose = document.getElementById("trClose");
if (!isNaN(intResponse)) {
if (intResponse == 1) {
spanCallBackStatus.innerHTML = "Excel Report has been generated."
trClose.style.display = "";
Init();
window.location.href = hdnRedirectUrl.value;
}
else {
GetStatus();
}
}
else {
spanCallBackStatus.innerHTML = strResponeText;
}
}
}
XMLHttpRequestObject.send(null);
}
非常感谢任何帮助。 非常感谢。
更新 - 2014年2月20日下午3:55(菲律宾时间)
嗨,大家好,
我找到了错误的原因,这是因为内容类型被调用了两次。在Page_Load事件期间和生成Excel函数的最后一行,这是不应该的。这就是为什么在生成excel函数之后替换页面加载后的当前内容类型的原因。嘿,我猜不好。
无论如何,感谢所有的帮助,建议和有用的链接。 大家好日子。 :d
答案 0 :(得分:1)
Internet Explorer无法处理对XMLHttpRequestObject等AJAX请求的二进制响应,如this question中所述。您需要以其他方式处理响应,具体取决于您需要执行的操作。