jQuery:从文件系统中读取文本文件

Joh*_*dol 15 filesystems jquery get file

我试图使用jquery读取文本文件,如下所示:

// LOAD file and split line by line and append divs
$.get('myFile.txt', function(data) {    
    var lines = data.split("\n");

    $.each(lines, function(n, elem) {
       $('#myContainer').append('<div>' + elem + '</div>');
    });
});
Run Code Online (Sandbox Code Playgroud)

在chrome中,我得到:

XMLHttpRequest cannot load file:///C:/myPath/myFile.txt. Origin null is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)

Firefox没有显示错误,但代码没有执行(我在firebug中有断点,匿名函数从不运行).

任何帮助赞赏!

编辑:

必须:

  • 使用文件完整路径
  • 使用"--allow-file-access-from-files"启动chrome

现在它工作正常!

And*_*ers 15

您无法从本地文件系统加载文件,如此,您需要将其放在Web服务器上并从那里加载它.在您加载JavaScript的同一站点上.

编辑:看看这个线程,您可以使用选项启动chrome --allow-file-access-from-files,这将允许访问本地文件.

  • 这不仅仅是一个单一的供应商补贴,而是一般规则.在localhost上创建一个Web服务器并测试代码 - 这样它也可以在Chrome中运行,因为正如您所见,它默认情况下不支持从本地文件系统读取. (2认同)
  • 我需要一个简单的页面来加载日志文件,以便在给定的机器上出于管理原因.相信我,它有一点意义. (2认同)

Ali*_*ini 5

指定文件URL的完整路径


小智 5

至少在Firefox中这可以正常工作。

我面临的问题是,我得到了一个XML对象而不是纯文本字符串。从本地驱动器读取xml文件可以正常工作(与html相同的目录),因此我不明白为什么读取文本文件会成为问题。

我认为我需要告诉jquery传递字符串而不是XML对象。这是我所做的,终于奏效了:

function readFiles()
{
    $.get('file.txt', function(data) {
        alert(data);
    }, "text");
}
Run Code Online (Sandbox Code Playgroud)

注意最后添加了“文本”。这告诉jquery将“ file.txt”的内容作为字符串而不是XML对象传递。警报框将显示文本文件的内容。如果最后删除“文本”,则警告框将显示“ XML对象”。