2013-03-21 106 views
2

無法讓AJAX工作!我在網站上有一個選取框,讓它工作!但我希望它能夠在文本文件中找到選取框的文本,並且我希望它能夠讀取文本文件中的文本(這是一行)並將其分配給名爲content的變量,該變量是腳本標記。Javascript:使用AJAX讀取文本文件

當我運行網站(本地IIS)時,選框文本是:「undefined」(不帶引號)。

爲什麼不將文本分配給變量content

var content 

    function loadXMLDoc() 
    { 
     var textfile; 
     if (window.XMLHttpRequest) 
     { 
      textfile = new XMLHttpRequest(); 
     } 
     textfile.onreadystatechange = function() 
     { 
      if (textfile.readyState == 4 && textfile.status == 200) 
      { 
       content = textfile.responseText; 
      } 
     } 
     textfile.open("GET", "C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt", true); 
     textfile.send(); 
    } 

編輯:百萬感謝@kuncajs,他指出,我忘了打電話的功能! :)修正!感謝其他人!在您的IIS目錄www C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt

地點,並說明喜歡的路徑:

+0

感謝@BLSully的格式 – 2013-03-21 12:34:07

回答

2

不要使用本地路徑類似 localhost/text.txt

服務器可以有限制你的文件系統訪問,你也應嘗試使用相對路徑,如text.txt或絕對路徑/text.txt,這樣路徑即使在生產環境中部署時也能正常工作。

編輯: 因此,如果這沒有幫助,然後確保你真正調用loadXMLDoc()功能。同時檢查你所做的一切是 AJAX結束!我的意思是你在做if中的任務 - 當AJAX完成時,但你也應該初始化你的選取框!AFTER!文本被加載。如果你這樣做,它會被undefined

+0

你好是異步的,可能需要一點時間!謝謝@ kuncajs!就像你告訴我的那樣,遺憾的是仍然在選取框中出現「未定義」。我試着刪除「localhost /」,只保留文本文件名。該文本文件位於www的根文件夾中。 – 2013-03-21 12:29:00

+0

好的,我會嘗試一下這段代碼,並告訴你它是如何工作的。 – kuncajs 2013-03-21 12:33:03

+0

感謝百萬@kuncajs – 2013-03-21 12:35:14

0

嘗試先使用相對或絕對路徑。

如果不工作檢查使用瀏覽器時,你可以訪問該文件(假設你的網站是mysite.com/index.html,嘗試開放mysite.com/text.txt

如果你不能使用你的瀏覽器,那麼你訪問它將不得不配置您的服務器以允許讀取該文件,從未嘗試IIS,因此我無法幫助您。

此外,由於你是問你XHR填充前的變量(取決於你/你的服務器的速度)