Javascript 如何从文本文件中获取var值?

Javascript 如何从文本文件中获取var值?,javascript,file,text,input,var,Javascript,File,Text,Input,Var,例如,有一个文件 我想使用此文件作为var值,如下所示: <script> ... var list = [ ***I want to get that .txt file as values here.*** ]; ... </script> 但是它不起作用…你不能,因为 但是,如果您提供的另一个url是来自服务器的链接,允许跨源请求,那么JQuery.get就可以工作了 但由于这不太可能是一个服务器,所以您将获得内容类型:text/plain,而不是JSON对象。这

例如,有一个文件

我想使用此文件作为var值,如下所示:

<script>
...
var list = [ ***I want to get that .txt file as values here.*** ];
...
</script>
但是它不起作用…

你不能,因为

但是,如果您提供的另一个url是来自服务器的链接,允许跨源请求,那么
JQuery.get
就可以工作了

但由于这不太可能是一个服务器,所以您将获得
内容类型:text/plain
,而不是JSON对象。这意味着您必须解析它,如其他答案所示


乱劈 如果不需要将数据与服务器同步,可以使用另一种脚本语言(如bash的
curl
)在服务器上下载文件。然后使用此文件使用javascript进行查询:

# bash
curl 'http://test.com/a.txt' -o a.txt

如果您在与该文件具有相同来源的页面上执行此操作(请参阅),或者该文件的服务器支持您的站点,您可以通过将其包装在
[
]
中并将
'
转换为
”,轻松地将其解析为JSON:

自然地,这假设数据中的
'
带引号的字符串中没有
'

如果是服务器不允许的跨源请求,则不能从浏览器执行;您需要向自己的服务器发出请求,并让服务器从另一端请求


请回复您的评论:


我刚刚尝试过,但没有成功。它显示了一条错误消息。未捕获的SyntaxError:意外标记;在JSON中,位于JSON.parse()的10233位置

那么数据就不是你在问题中所说的那样了,因为如果是的话,它会起作用:

var数据=
"['http://a.com“,false],\n”+
"['http://b.com“,false],\n”+
"['http://c.com“,false],\n”+
“['http://d',false]”;
console.log(“数据:”);
控制台日志(数据);
log(“已解析:”);
var list=JSON.parse(“[”+data.replace(/”/g,“)+“]”);
控制台日志(列表)
。作为控制台包装器{
最大高度:100%!重要;

}
它不起作用,因为您可能首先无法获取文本文件。从浏览器调用外部站点非常困难,并且通常被跨域策略禁止。如果请求是可能的,可能是JSON.parseyou,如果请求是允许的,并且您使用了JSONP。阅读更多信息:value是否给了您一些东西,或者请求是否失败?@AhmadAlsanie:文件的内容不是有效的JSONP。或者JSON。如果服务器允许这样的跨域调用,您可以。。。但这不太可能。也不可能像下面那样调用整个变量吗?var list=[['',false],'',false],'',false],'http://d',false]];然后,…**我可以在这里调用.txt文件吗?**。。。你调用整个变量是什么意思?@Jenny很抱歉,我仍然没有对你的问题发表评论。我已经更新了我的答案,够了吗?我只是试了一下,但没有用。它显示一条错误消息。未捕获的语法错误:意外标记;在JSON.parse()@Jenny的位置10233处的JSON中:那么数据与您的问题中显示的不一样;见更新答案中的证明。
<script>
...
var list = [ 
['http://a.com', false],
['http://b.com', false],
['http://c.com', false],
['http://d', false]
];
...
</script>
jQuery.get('http://test.com/a.txt', function(data) {
// The type o breaking line caracter will vary depending on OS
var values = data.split("\n");       
var List = values[values.length-1];              
});
# bash
curl 'http://test.com/a.txt' -o a.txt
jQuery.get('/a.txt', function(data) {
  /* use data here, may need to be parsed as in other answer */             
});
jQuery.get('http://test.com/a.txt', function(data) {
    var list = JSON.parse("[" + data.replace(/'/g, '"') + "]");
    // ...
});