更新后JSON对象未刷新(跨域)

时间:2018-05-08 14:06:25

标签: javascript jquery

我试图从其他域请求JSON文档,但它可以正常工作。

但是,我的主要问题是JSON在更新后没有更新对象。

这是我的上一页/更新前 JSON数据。

{
    "name": "human",
    "version": "1.0",
    "list": [
        {"name": "Human1", "blood": "A"}
    ]
}

这是我的 AJAX功能

function getHumans () {
    $.ajax({
        type: "GET",
        crossDomain: true,
        cache: false,
        url: "https://some.website/file.json",
        dataType: 'json',
        success: function (data) {
            console.log(data);        
        }
    });
};

第一个请求非常好,输出:

{name: "human", version: "1.0", list: Array(1)}

然后,我试图在list数组上添加另一个对象。因此,数组应该是(2),但事实并非如此。数组仍然(1),我也关闭了我的缓存,但没有工作。

我希望JSON能够自动更新/刷新对象,而无需重新加载或刷新页面。我在电子上使用它。

1 个答案:

答案 0 :(得分:0)

您应该使用.push()添加元素。我们假设:

a = {name: "human", version: "1.0", list: [1]}

a.list.push(2);

结果:

{name: "human", version: "1.0", list: [1,2]}

如果您的新列表元素来自数据:

a.list.push(data.list[0]); //or similar

如果要替换整个列表数组,则:

a.list = data.list;

请记住,在这种情况下,var a需要在getHumans()函数的上下文之外生效,因此,每次调用getHumans()时,该函数必须更新{{1}的值},您可以将变量作为参数传递或执行类似a的操作,其中getHumans()返回a的新值。