如何使用XMLHttpRequest()读取与index.html位于同一目录中的文本文件,而不使用<input type =“file”id =“fileToLoad”/>

时间:2015-02-25 20:39:38

标签: javascript html xmlhttprequest

我有我的index.html,并且在同一目录中我有一个文本文件,我放在那里,希望能够阅读它。除了使用输入类型格式外,我尝试过的所有内容都失败了。我不需要做文件选择。我知道文件是什么以及它在哪里。

这是我的功能:

    <script type='text/javascript'>
    document.getElementById("FunText").innerHTML = 
    "The text should show here:" + readTextFile('file:///E:/My_Html/list.txt');

    function readTextFile(file)
    {
      var allText = "";
      var rawFile = new XMLHttpRequest();
      rawFile.open("GET", file, true);
      rawFile.onreadystatechange = function()
           {
            if(rawFile.readyState == 4)
               {
                if(rawFile.status == 200 || rawFile.status == 0) // status = 0
                   {
                    allText = rawFile.responseText;
                    alert("I get this:" + allText);
                   }
                }
          }
          rawFile.send(null);
      }

变量allText总是返回空。如果我把&#34; file:/// E:/My_Html/list.txt"在浏览器搜索框中,它显示文件的内容。有谁看到这个问题?我在函数结束时打开后立即尝试了rawFile.send(null),rawFile.send()。什么都行不通。我搜索过Stackoverflow,W3和其他人。我不知所措。 感谢您的耐心和时间。

1 个答案:

答案 0 :(得分:0)

您可以将 JQuery 库添加到项目中并使用$.get()函数:

http://api.jquery.com/jquery.get/

示例(因为文件与index.html处于同一级别):

<script type='text/javascript'>

    function readTextFile(file) {
        $.get(file, function(data) {
            document.getElementById("FunText").innerHTML = "The text should show here: " + data;
        });
    }

    readTextFile("list.txt");

</script>