2015-05-28 14 views
-2

我想用jQuery讀取一個文件(服務器端)。我嘗試了多個網站提供的代碼,但它沒有奏效。用jQuery讀取文件?

我想最後的代碼是:

jQuery.get("users/" + get("user") + "/display.txt", function(data) { 
    fullName = data; 
}); 

但是變量「全名」(這是在代碼之前聲明)出來爲「未定義」。我怎樣才能使這個工作?

編輯:全碼(不包括CSS)

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Chat</title> 
     <script src="jquery-1.11.3.min.js"></script> 
     <script type="text/javascript"> 
      function get(variable) { 
       var query = window.location.search.substring(1); 
       var vars = query.split("&"); 
       for (var i=0;i<vars.length;i++) { 
        var pair = vars[i].split("="); 
        if(pair[0] == variable){return pair[1];} 
       } 
       return(false); 
      } 
      var fullName; 
      var file = "users/" + get("user") + "/display.txt"; 
      jQuery.get(file, function(data) { 
       fullName = data; 
      }); 
     </script 
    </head> 
    <body bgcolor="#B2C2F0"> 
     <div class="window"> 
      <div class="rightCorner"> 
       <span><script type="text/javascript">document.write(fullName)</script></span> 
      </div> 
     </div> 
    </body> 
</html> 
+1

你是如何試圖訪問的變量?這是一個異步調用,所以如果它在回調之外,它將不起作用。 – tymeJV

+0

控制檯中的任何錯誤? – j08691

+0

「不工作」是什麼意思?你想在哪裏讀'fullName'?你知道這是AJAX,因此是異步的,對嗎?這意味着AJAX請求會在後臺運行,並且代碼的其餘部分會繼續。在未來的某個時間AJAX調用完成之前,不會設置「fullName」。 –

回答

0

您不能修改fullName VAR與函數內部data值之外,和閱讀。
如果您需要使用該功能以外的信息,則需要導出data值的另一個函數。

喜歡的東西:

var fullName = "not-set"; 
console.log('fullName is:', fullName); // not-set 

function set_fullName(data) { 
    fullName = data; 
    console.log('fullName is:', fullName); // must be `Levi` now 
} 

jQuery.get("users/" + get("user") + "/display.txt", function(data) { 
    set_fullName(data); 
}); 
0

你可能只是想在Ajax調用完成之前訪問全名。

試試這個:

var fullName = ""; 
function getUserName(username){ 
    jQuery.get("users/" + get("user") + "/display.txt", onGetComplete); 
} 
function onGetComplete(data){ 
    fullName = data; 
    continueProgram(); 
} 
function continueProgram(){ 
    console.log(fullName); 
} 

getUserName();