var url_string = '/index.php/dvs/get_dvs/' + id + '/';
$.ll = {};
$.ll.dvs_data = {};
$.post(url_string,{},
function (data)
{
$.each(data.dvs, function(k,v) {
$.each(v, function(dvs_name, dvs_value) {
$.ll.dvs_data[dvs_name] = dvs_value;
});
});
}, "json");
var test = $.ll.dvs_data;
console.log(test['username']);
console.log(test.username);
console.log(test);
以上是其他一些代码的一部分,数据是作为console.log(test)接收的,在firebug(firefox)中显示对象但是我无法访问test.username或test ['username]对象,他们只是以未定义的方式返回
答案 0 :(得分:2)
这是AJAX的一个常见错误。 post调用是异步的,这意味着即使在收到服务器的响应之前,它也会继续运行代码。
任何依赖于服务器响应的代码都需要进入回调函数:
$.post(url_string,{},
function (data)
{
$.each(data.dvs, function(k,v) {
$.each(v, function(dvs_name, dvs_value) {
$.ll.dvs_data[dvs_name] = dvs_value;
});
});
// Move your code up here
var test = $.ll.dvs_data;
console.log(test['username']);
console.log(test.username);
console.log(test);
}, "json");