javascript - 从本地文件运行时 $.get() 无法正常工作

标签 javascript jquery file readfile

我有一些 Javascript 代码来读取文件。我在浏览器中从本地文件系统打开此文件:

var rawFile = new XMLHttpRequest();
rawFile.open("GET", "test.txt", false);
rawFile.onreadystatechange = function () {
    if(rawFile.readyState === 4) {
        if(rawFile.status === 200 || rawFile.status == 0) {
            findWord(rawFile.responseText.split("\n"));
        }
    }
}
rawFile.send(null);

这工作得很好,但在 Chrome 中已被弃用。发现之后我尝试使用 $.get()像这样:

$.get("test.txt", function(result) {
    alert(result);
});

但它甚至不发出警报。

有没有办法在 Chrome 和 Firefox 中读取此文件?请注意,我不想使用任何类型的 <input type="file">并且文本数据必须以文件的行数组形式返回。

我在使用 $.get() 时收到来自 Chrome 的警告和错误和$.ajax() .

错误:

index.html:36 XMLHttpRequest cannot load file:///C:/Users/mz/Dropbox/Shubs/test.txt. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

我也没有在服务器上运行。所以 localhost 在这种情况下不起作用。

最佳答案

你得到:

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource error

因为您正在使用 file://C:/ 加载文件,这与错误消息保持一致,因为它们不是 http:// 所以我有两个解决方案向您建议:

  1. 要么从服务器(php、nodejs)发送文件并将其捕获 客户端(ajax)
  2. 或者您使用js文件阅读器读取文本文件

关于javascript - 从本地文件运行时 $.get() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913982/

相关文章:

python - 获取文件Python中某个短语的行号

c - 在c中,char类型的参数与const char参数类型不兼容

javascript - 在不影响站点的可访问性和 SEO 的情况下使用 JavaScript 的最佳实践和技巧是什么?

javascript - Jest Spy 说函数没有被调用

javascript - phonegap iPhone 应用程序缓存旧数据

如果元素存在,Jquery insertAfter 仅一次

javascript - 如何使用 javascript 将值从一个 html 页面传递到另一个 html 页面

javascript - 如何在 pjax 加载之前和之后运行 jQuery?

javascript - 在jquery ajax中发送表单数据

linux - 如何在 Linux 上查找哪些进程已写入文件