responseText字段未定义

时间:2014-08-29 20:20:27

标签: javascript jquery

我正在使用jQuery从csv中提取数据。请求成功(在控制台中成功!!)我可以在打印对象时看到responseText字段中的数据,但是我无法打印data.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对象在完成$ .ajax调用完成之前没有创建和可用,但响应可以更快地获得。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

请了解异步方法。您需要使用回调。你试图做的就是在挂断电话后立即吃一块送货披萨。你需要等到这个人交付它。

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