如何使用javascript从文本文件中读取文本

时间:2014-04-29 22:48:58

标签: javascript file text

这是我需要阅读的文本文件: http://openweathermap.org/help/city_list.txt

我在本地桌面保存了它,并编写了以下代码:

<!html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" ></script>
<script>
$(document).ready(function () {
  $.get('city_list.txt', function(data) {

    var lines = data.split(/\n/);

  });
});
</script>
</head>
<body>
hello
</body>
</html>

我得到的错误是:

  

XMLHttpRequest无法加载file:/// C:/Users/LIRON/Desktop/city_list.txt。   收到无效回复。因此,不允许原点'null'访问。

我做错了什么?

3 个答案:

答案 0 :(得分:0)

jQuery get请求期望发出HTTP请求,因此您应该保留完整的URL&#34; http://openweathermap.org/help/city_list.txt&#34;在获取请求中。

试试这个:

$。get(&#39; http://openweathermap.org/help/city_list.txt&#39;,功能(数据){

var lines = data.split(/ \ n /);

}&#34;文本&#34; );

答案 1 :(得分:0)

默认情况下,jquery不允许对其他页面执行请求,名为CrossDomain。 您正在尝试读取外部文件 如果您要使用本地计划,则可以使用以下命令运行Chrome实例:

chrome.exe --allow-file-access-from-files

但是如果你使用apache最简单的方法来处理这个,如果你有控制响应服务器就是为:添加一个响应头:

Access-Control-Allow-Origin: *

这将允许跨域Ajax。在PHP中,您将要修改响应,如下所示:

<?php header('Access-Control-Allow-Origin: *'); ?>

您可以将Header set Access-Control-Allow-Origin *设置放在Apache配置或htaccess文件中。它就像一个魅力。

答案 2 :(得分:0)

如果您的代码是从远程服务器执行的,则不允许执行get请求,因为存在Access-Control-Allow-Origin标头。 但是,如果您的文本文件位于同一服务器/域上,则应该可以使用此get请求执行此操作:

$(function(){
  $.get('THE_PATH/city_list.txt', null, function(data) {
      var lines = data.split(/\n/);
  }, "text")
})