2014-04-29 108 views
-1

這是文本文件,我需要讀來讀取文本文件中的文本: http://openweathermap.org/help/city_list.txt如何使用JavaScript

我在我的桌面上本地保存它,並寫了下面的代碼:

<!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無法加載文件:/// C:/Users/LIRON/Desktop/city_list.txt。 收到無效回覆。因此不允許原產地'null'訪問。

我在做什麼錯?

回答

0

jQuery get請求期望發出HTTP請求,因此您應該在獲取請求中保留完整的url「http://openweathermap.org/help/city_list.txt」。

嘗試這種情況:

$獲得( 'http://openweathermap.org/help/city_list.txt',功能(數據){

變種線= data.split(/ \ N /);

}, 「文本」 );

+0

試過,現在它寫道:沒有「訪問控制允許來源」標頭呈現在請求的資源上。因此不允許原產地'null'訪問。 – user3587197

0

jquery默認不允許執行其他頁面的請求,即名爲CrossDomain。 您嘗試讀取外部文件 如果您excecuting本地程序,你可以運行自己的Chrome實例:

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

但如果你有控制,如果你使用的是Apache的最簡單的方法來處理這響應服務器是添加響應標頭爲:

Access-Control-Allow-Origin: * 

這將允許跨域Ajax。在PHP中,你將要修改的響應,像這樣:

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

你可以把頁眉在Apache配置或htaccess文件設置Access-Control-Allow-Origin *設置。它就像一個魅力。

+0

我不使用apache只是記事本++我該怎麼辦?我很無奈也許上傳文件到像0000webhost這樣的服務器? – user3587197

0

那麼,如果您的代碼是從遠程服務器執行的,則不允許執行獲取請求,因爲存在Access-Control-Allow-Origin標頭。 但是,如果你的文本文件是在同一個服務器/域,你應該能夠不用它要求做到這一點:

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