【问题标题】:Read local txt file JavaScript [duplicate]读取本地文本文件 JavaScript [重复]
【发布时间】:2018-07-09 19:37:32
【问题描述】:

我试图在 JS 中读取 txt 文件。 所以我使用this 代码。

我的 txt 文件看起来:["187.48.35.40"]

我的应用程序正在谷歌地图上搜索 IP 地址。

当我输入我的代码时:var ip = ["187.48.35.40"]; 我的程序运行良好,但我想用 IP 地址打开 txt 文件。

function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
    if(rawFile.readyState === 4)
    {
        if(rawFile.status === 200 || rawFile.status == 0)
        {
            var allText = rawFile.responseText;
            alert(allText);
        }
    }
}
rawFile.send(null);
}
var ip = readTextFile("xxx.txt");

但我的应用程序无法读取 txt 文件。

【问题讨论】:

  • 您是否遇到任何错误?
  • 没有任何错误。
  • 根据您链接的代码,您必须提供完整的文件 url,包括 file:// 协议部分。请记住,这仅适用于本地文件。如果您希望文件位于服务器上,则必须相应地设置服务器并使用服务器上文件的 url。
  • Chrome 会认为这是一个“跨源请求”,并拒绝它。 Firefox 将允许它,前提是该文件与运行脚本的 HTML 文件位于同一文件夹中。 file:/// 协议没有明确定义什么是跨源的。将脚本移动到服务器(可以是 localhost)。
  • XMLHttpRequest 不起作用,除非您通过 HTTP 或 HTTPS 从服务器请求。即使您希望它在本地运行,您也必须运行本地 Web 服务器并针对它提出请求。因此,资源的位置也必须以协议为前缀(即http://https://)。

标签: javascript


【解决方案1】:

XMLHttpRequest 不起作用,除非您通过 HTTP 或 HTTPS 从服务器请求。即使您希望它在本地运行,您也必须运行本地 Web 服务器并针对它提出请求。因此,资源的位置也必须以协议为前缀(即http://https://)。

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 2014-02-26
    • 2014-11-29
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多