【发布时间】:2014-03-03 11:55:07
【问题描述】:
我有一个看起来像这样的文件
1 4
2 4
3 6
我像这样将它加载到我的代码中
var file = 'fileName';
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function () {
if(rawFile.readyState === 4) {
if(rawFile.status === 200 || rawFile.status == 0) {
var allText = rawFile.responseText;
console.log(allText);
setTimeout(otherFunction, 3000);
}
}
}
rawFile.send(null);
当我这样做时
console.log(allText);
这是输出:
1 4
//blank line
为什么,我该如何解决?
编辑:我在网络选项卡中看到下载的文件看起来就像 console.log() 输出。但是,服务器上的文件看起来如本问题顶部所述。
编辑:问题在于
transfer-encoding: chunked
我需要“取消设置传输编码”或设置文件的长度。但是我在哪里以及如何做到这一点?没有 PHP 文件,文件直接从我的服务器加载到 JavaScript。
【问题讨论】:
-
好奇...你检查过网络面板吗?打开您提出的请求并检查下载的文件是否包含您认为包含的内容。
-
是
transfer-encoding:chunked? -
//more code部分很重要,因为XmlHttpRequest是异步的 - 请参阅 stackoverflow.com/a/6462019/637889。您能否编辑问题以显示整个函数以及console.log(allText)的确切位置? -
@andyb
readyState为 4,表示完全加载。 -
我如何确定 transfer-encoding:chunked 是否存在?
标签: javascript php string file parsing