2014-08-29 64 views
-1

我正在使用jQuery從csv中提取數據。請求成功(控制檯中的Success !!),並且我可以在打印對象時看到responseText字段中的數據,但無法打印data.responseText(在控制檯中顯示爲「undefined」)。responseText字段未定義

window.onload = function(){ 

    console.log("start"); 
    var data = $.ajax({url:"http://localhost/bootstrap/data/930.csv",success:function(){ 
     console.log("Success!!"); 
     }() 
    }); 
    console.log(data); 
    console.log(data.responseText); 

如何訪問responseText進行轉換?

編輯:

每秒更新的評論我的代碼來強制同步和修改變量,以便更好地跟隨他們。我仍然對結果感到驚訝。

console.log("start"); 
    var ajaxData = $.ajax({url:"http://localhost/bootstrap/data/930.csv",async:false,success:function(dataReturned){ 
     console.log("Success!!"); //Success!! 
     console.log(dataReturned); //Returns my csv data 
     console.log(dataReturned.responseText); //undefined 
     } 
    }); 
    console.log(ajaxData); //Returns a jQuery object that included my csv data 
    console.log(ajaxData.status); // Returns 200 
    console.log(ajaxData.responseText); //Returns my data (same as dataReturned in success function) 

所以我想我也錯過了jQuery對象不會創建和使用,直到完成$就調用完成,但響應可用越快。

感謝您的幫助。

+1

歡迎來到異步編程的世界。請使用回撥 – epascarello 2014-08-29 20:22:30

+0

另請參閱[爲什麼我的變量在函數內部修改後沒有改變? - 異步代碼引用](http://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-modify-it-inside-of-a-function-asynchron)。 – 2014-08-29 20:30:41

回答

0

請了解異步方法。你需要使用回調。你試圖做的是在掛斷電話後立即吃送貨披薩。你需要等到這個人交付它。

$.ajax({url:"http://localhost/bootstrap/data/930.csv",success:function(data, status, xhr){ 
    console.log("Success!!"); 
    console.log(data); 
    console.log(xhr.responseText); 
    } 
}); 
+0

好吧,我錯過了異步的事情。然而,從上面的代碼記錄驚奇我。 (數據)是我正在尋找的響應(我期待對象被返回。(data.responseText)仍然未定義。 – 2014-08-29 20:50:34