我正在尝试使用Ajax(XMLHttpRequest)下载Excel文件。
完成后,发现responseText只有5个字符。 网络嗅探工具(Fiddler)向我显示我的计算机收到了整个文件。
那么为什么responseText只显示5个字符?我已经尝试了同步和异步调用。
感谢您在这里提供的任何帮助。
var xmlHttpReq = getXmlHttpRequestObject(); function getXmlHttpRequestObject(){ var xmlhttp; if (window.XMLHttpRequest){// code for all new browsers xmlhttp=new XMLHttpRequest(); }else if (window.ActiveXObject){// code for IE5 and IE6 // xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); progids = ['MSXML2.XMLHTTP.6.0', 'MSXML2.XMLHTTP.3.0', 'Microsoft.XMLHTTP']; for (i=0 ; i < progids.length; i ++){ try { xmlhttp = new window.ActiveXObject(progids[i]); break; } catch (e) { //do nothing } } } return xmlhttp; } //utility method for http get function doSynchronousGet(url){ if(xmlHttpReq == null){ xmlHttpReq = getXmlHttpRequestObject(); } //change last param to true for making async calls. xmlHttpReq.open("GET" ,url,false); xmlHttpReq.setRequestHeader("Connection", "close"); xmlHttpReq.send(null); return xmlHttpReq.responseText; } var resultText = doSynchronousGet(url); alert('resultText length: '+ resultText.length); alert('resultText: '+ resultText);
问题可能是XMLHttpRequest通常不像Excel文件那样接受二进制数据。如果您只想让用户下载文件,请阅读Ramiz的文章。如果您需要使用JavaScript读取数据,请尝试切换为CSV等文本格式(或更适合解析JSON)。