多个GetJSON调用不起作用?

时间:2017-06-29 20:18:42

标签: javascript jquery html json call

我有一些像这样运行的代码,它按预期工作。

<script>
$.when(
    $.getJSON(url1),
    $.getJSON(url2),
    $.getJSON(url3),
).done(function(data1, data2, data3){
    //do stuff with data1, data2, data3
});
</script>

我试图简化这样的调用

class PageOne(PageFrame)

第一个代码有效,但第二个代码没有。我似乎无法获得第二个代码。我有什么东西不见了吗?!

2 个答案:

答案 0 :(得分:-1)

为每个返回响应数据的then()添加$.getJSON

$.when(
  $.getJSON('data.json').then(res => res),
  $.getJSON('data2.json').then(res => res),
  $.getJSON('data3.json').then(res => res)
).done(function(data1, data2, data3) {
    //do stuff with data1, data2, data3
})

DEMO

答案 1 :(得分:-1)

在第二个示例中,data1,data2和data3是包含响应文本,状态和jqXHR对象的长度为3的列表,而不是像第一个示例中那样只是JSON数据。

$.when(
    $.getJSON(url1),
    $.getJSON(url2),
    $.getJSON(url3),
).done(function(data1, data2, data3){
    //do stuff with data1[0], data2[0], data3[0]
});

另一件需要考虑的事情是JQuery希望您的返回类型为JSON,因此如果您的服务器响应不包含“Content-Type:application / json”,则不会触发完成回调。