Я воссоздал твой код и понял это. Возвращаемый объект имеет тип XMLHttpRequest. У него есть свойство responseText, содержащее строку json с данными.
так что это работает ..
var decodedData = eval("(" + data.responseText + ")");
username = decodedData.username;
alert(username);
Немного грязно, но это помогает: -)
p.s Если это поможет, я понял это с помощью firebug в firefox и установил точку останова в коде js
Отредактировано ниже:
Не желая делать eval, вы можете использовать это, и это работает:
$.getJSON("json.php?action=startjson",
function(data) {
username = data.username;
alert(username);
}
);
Отредактировано, чтобы показать, что я сделал с функцией успеха:
$.ajax({ url: "json.php?action=startjson",
cache: false,
dataType: "json",
success: function(data) {
username = data.username;
alert(username);
}
});