【问题标题】:reading file with xmlhttprequest results in error console entry使用 xmlhttprequest 读取文件会导致错误控制台条目
【发布时间】:2011-09-11 09:06:28
【问题描述】:

我使用以下代码从 javascript 读取文件

    var filePath = "SBL_PROBES.txt";
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET",filePath,false);
    xmlhttp.send(null); 
    var fileContent = xmlhttp.responseText;
    var fileArray = fileContent.split('\n')
    var n = fileArray.length;

一切顺利,我可以从 fileArray 访问文件内容。但是 Firefox 错误控制台上出现一个错误,抱怨文件第 1 行的内容。我不希望文件被 javascript 或 firefox 解释,我想要的只是我用 javascript 解析的内容。

Firefox 控制台显示

错误:语法错误 源文件:file:///C:/Documents%20and%20Settings/Mike/Desktop/mustache/SBL_PROBES.txt 行:1,列:1 源代码: "title" "Short Name" "Long Name" "Current","Maximum","Minimum","Day Max","Day Min"

如果我将<blockquote> </blockquote> 放入文件中,错误就会消失!

发生了什么,我该如何解决?

我需要做些什么来关闭文件吗?当这些变量超出范围时,事情会被清理吗?

【问题讨论】:

  • 抱怨到底是什么,错误信息是什么?无论如何,使用 jQuery 之类的 Ajax 操作框架可能更可行:api.jquery.com/jQuery.ajax 可以解决跨浏览器的不一致问题
  • 错误是什么? Chrome 中是否也会发生同样的情况?
  • 这个文件在哪里?您需要将完整的 URL 作为第二个参数输入到xmlhttp.open()。类似xmlhttp.open("GET","http://mydomain.com/SBL_PROBES.txt",false);
  • 我的代码按预期工作,文件内容被返回。唯一错误的是 Firefox 错误控制台条目。错误:语法错误源文件:file:///C:/Documents%20and%20Settings/Mike/Desktop/mustache/SBL_PROBES.txt 行:1,列:1 源代码: "title" "Short Name" "Long Name" "Current","Maximum","Minimum","Day Max","Day Min"
  • @whg:这是一个同步请求。我需要等待吗?

标签: javascript xmlhttprequest


【解决方案1】:

这应该可以解决它:

xmlhttp.overrideMimeType('text/plain');

默认情况下,似乎使用 XMLParser 解析本地文件。

【讨论】:

  • 是的,它确实修复了它!非常感谢!我想我会在我的文件中留下
    标签来标记开始和结束,这也使它们可以显示。我的解析器可以忽略它们。
猜你喜欢
  • 2020-07-31
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 1970-01-01
相关资源
最近更新 更多