这是我需要阅读的文本文件:
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'访问。
我做错了什么?
答案 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")
})