2017-08-17 87 views
0

我只是試圖做一些簡單的事情。我想要做的就是將文本文件的內容加載到變量中。該文本文件只有一行,並且始終是一個字符串。我知道有其他線程問同樣的問題,但截至目前,我已經得到最接近的答案是這樣的:如何將文本文件中的數據加載到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

回答

0

很明顯,您正嘗試向用戶的本地計算機發出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文件中的數據不可用?如果這是正確的,文件中的數據類型是什麼,你可以粘貼一個例子嗎?其次,您想以何種方式顯示數據? –

相關問題