我是 JavaScript 新手,并且在 txt 文件中存储了一些数据,我想在我的网页上使用这些数据。
但是,当我发送 XmlHttpRequest 来获取文本文件时,firefox 在我尝试读入的 .txt 的第一行抛出语法错误。
这是我的代码:
var txtFile = new XMLHttpRequest();
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4) {
if (txtFile.status === 200) {
allText = txtFile.responseText;
lines = txtFile.responseText.split("\n");
}
}
}
txtFile.open("GET", "File:\\\myinfo.txt", true);
txtFile.send(null);
以下是来自 Firefox 的错误消息:
语法错误: “文件:\\myinfo.txt”行:1
然后这里有该行的文本
我认为这可能意味着我不被允许访问本地文件,这是 Firefox 让我知道这一点的方式。
有人有过此错误的经验或知道它的含义吗?
最佳答案
反斜杠字符在字符串中具有特殊含义。它表示下一个字符在某种程度上是特殊的,例如,您可以使用反斜杠将其转义,从而在字符串中包含引号:
'It\'s a string'
为了包含文字反斜杠,您将其放置两次:
'This is one backslash \\ character'
因此,在您的示例中,您有 \\\m
。前两个斜杠变成一个斜杠,并且 \m
未被识别为有效的转义序列,因此您会收到错误。
将您的网址更改为使用正斜杠(它没有这种特殊含义,但无论如何都是在网址中使用的正确斜杠类型),或者使用双反斜杠:
"file:///myinfo.txt"
"file:\\\\\\myinfo.txt"
另外,请注意,这个 URL 实际上并不指向任何东西,它应该是这样的:
"file:///C:/myinfo.txt"
此外,如上所述,XMLHttpRequest 仅适用于与其所在页面托管的同一域,因此如果您的页面位于 http://www.example.com/您只能访问http://www.example.com/上的资源.
关于JavaScript XMLHttpRequest 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6442695/