在javascript未定义错误中访问JSON数据

时间:2018-01-24 00:23:11

标签: javascript jquery json

我正在调用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>>
})

有人可以解释一下为什么我无法访问上一行中的数据变量吗?

1 个答案:

答案 0 :(得分:1)

$。getJSON()是异步的。这意味着你必须在java脚本得到响应之前调用console.log,因此你没有数据。