我正在调用JSON数据并按如下方式写入:
var data;
$(function () {
$.getJSON("data.json", function (d) {
data = d;
});
$('.btn').click(function () {
data['c-type'] = $('#c-ccy option:selected').val();
data['f-type'] = $('#f-ccy option:selected').val();
$.ajax({
type: 'POST',
url: 'save2json.php',
data: {'json': JSON.stringify(data)},
success: function (msg) {
console.log('php output: ' + msg);
$.getJSON("data.json", function (d) {
console.log('GET JSON:');
console.log(d);
});
}
})
}); // <<THIS BLOCK OF CODE WORKS FINE AND READS/WRITES THE JSON OBJECT data PERFECTLY WHEN .btn IS CLICKED.>>
console.log(data); // <<ERROR: data undefined>>
})
有人可以解释一下为什么我无法访问上一行中的数据变量吗?
答案 0 :(得分:1)
$。getJSON()是异步的。这意味着你必须在java脚本得到响应之前调用console.log,因此你没有数据。