2014-08-29 66 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