JavaScript XMLHttpRequest 语法错误

标签 javascript text-files file-read

我是 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/

相关文章:

java - 计算文本文件中的特定单词 - Java

javascript - 如何比较 jQuery/JavaScript 中的两个颜色值?

javascript - 为什么代码要这样转换?

Java 按字符读取文本文件 - unicode 254 和 255 突然出现

php - 通过 php 数组将多行插入 mysql

c++ - 文件 I/O 二进制动态数组崩溃

javascript - 无论用户在 dialogflow v2 中输入什么,如何强制检测特定意图

php - PHP和JS如何共享HTML模板?

text-files - 在我的 Blazor 服务器端应用程序中,我逐行读取文本文件。但是当我可视化 Razor 页面中的线条时,线条缩进没有显示。为什么?

java - 从 Java 中不断更新的文件中读取新数据