如何将文本文件中的数据加载到javascript中的变量中

问题描述:

我只是试图做一些简单的事情。我想要做的就是将文本文件的内容加载到变量中。该文本文件只有一行,并且始终是一个字符串。我知道有其他线程问同样的问题,但截至目前,我已经得到最接近的答案是这样的:如何将文本文件中的数据加载到javascript中的变量中

var client = new XMLHttpRequest(); 
client.open('GET', '/foo.txt'); 
client.onreadystatechange = function() { 
    alert(client.responseText); 
} 
client.send(); 

这样做的问题是,我试图加载信息到一个变量。不要将它作为警报发送。我试过这个:

var string; 
var client = new XMLHttpRequest(); 
client.open('GET', '/foo.txt'); 
client.onreadystatechange = function() { 
    string = client.responseText; 
} 
client.send(); 

这也行不通。

这不是this post的重复,因为该文章关注于Ajax,并且实际上并未回答如何导入信息。我没有利用Ajax。我希望文件中的信息可以在程序的其他地方使用。

+1

可能重复[如何从异步调用返回响应?](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-调用) –

+0

@SterlingArcher这篇文章主要关注Ajax,并且实际上并未解释如何将文件中的信息加载到变量中。 –

+0

警告onreadystatechange中的变量,如果它工作正常,这里的问题显然是异步调用,如上所述^^。在使用分配的变量之前,必须等待onreadystatechange事件触发。 – Merigold

很明显,您正尝试向用户的本地计算机发出HTTP请求,并且出于显而易见的原因 - 浏览器不允许这样做!否则黑客将能够读取用户C盘的全部内容(如果他们想要的话) - 或者更糟糕!

所以 - 你需要上传文件!即<input type="file" id="uploadFile" />检查这个JSFiddle,你可以使用onChange event of the input to read the file

对于类似的情况,我使用的文件上传到服务器,并使用PHP/C#(广东话记得了我的头顶部),它返回所需的数据 - 这使实际上事情有点容易 - 服务器会收到文件并进行验证,提取所需的信息并返回所需的数据 - 尽管在服务器端看起来更多工作 - 它有点多一点,您可以计划使其减少您可能需要编写的JavaScript代码的数量。

+0

我有一个破旧的平板电脑。我做了一个网页,随时告诉我时间和日期。它也告诉我当地的天气。我要把它安装在我的宿舍墙上。我还制作了一个阅读我的电子邮件的程序,并导出了我下一次需要将我的汽车从当前停放的停车场移出的日期。我试图让时钟显示是否需要移动我的汽车。我不是黑客。 –

+0

好吧,我想我需要更好地理解你在做什么。所以你有一台平板电脑,你有一个网页和一个服务器,你可以从平板电脑访问该页面。你对一个也在网上的txt文件进行AJAX调用,并且txt文件中的数据不可用?如果这是正确的,文件中的数据类型是什么,你可以粘贴一个例子吗?其次,您想以何种方式显示数据? –