【发布时间】:2017-06-22 09:02:04
【问题描述】:
我有这段代码,它使用$.getJSON() 从 2 个 URL 检索 JSON,并将结果保存为变量。然后我使用$.when() 和then() 从这些变量中获取数据。但是,这只适用于我一次做一个,每个都有自己的$.when(),当我同时使用两个时不起作用。
var player = $.getJSON("http://api.hivemc.com/v1/player/" + $user + "/timv");
var game = $.getJSON("http://api.hivemc.com/v1/game/timv");
$.when(player,game).then(function(maindata, data){
$('#1').text(maindata.total_points);
$('#2').text(maindata.i_points);
$('#3').text(maindata.t_points);
$('#4').text(maindata.d_points);
$('#5').text(maindata.role_points);
$('#6').text(maindata.most_points);
if(maindata.detectivebook == true)
$('#7').text("Yes");
else
$('#7').text("No");
$flare = maindata.active_flareupgrade;
$flare = $flare.charAt(0).toUpperCase() + $flare.slice(1).toLowerCase();
$('#8').text($flare);
$('#9').text(maindata.title);
var d = new Date(maindata.lastlogin * 1000);
var n = d.toISOString();
$('#10').text(d.getDate() + "/" + d.getMonth() + "/" + d.getFullYear());
});
我得到的控制台错误是:
jquery-latest.min.js:2 Uncaught TypeError: Cannot read property 'length' of 不明确的 在 Function.each (jquery-latest.min.js:2) 在对象。 (博士:112) 在 Function.each (jquery-latest.min.js:2) 在对象。 (博士:108) 在对象。 (jquery-latest.min.js:2) 在 j (jquery-latest.min.js:2) 在 Object.fireWith [as resolveWith] (jquery-latest.min.js:2) 在 x (jquery-latest.min.js:4) 在 XMLHttpRequest.b (jquery-latest.min.js:4)`
谁能告诉我我做错了什么?谢谢。
【问题讨论】:
-
您在控制台中收到任何错误吗?
-
嗯,我在开发时使用 000Webhost 来托管我的网站,但我不确定如何查看控制台
-
在浏览器中按 F12,或右键单击元素并单击“检查”
-
我会将错误放在主帖中,但我不确定如果没有完整代码会有多大意义
-
您还可以在
then中添加第二个函数参数来处理错误:then(function success(maindata, data){ /*...*/ }, function error(params){ /*...*/ })(参数的设置取决于在 promise 中如何调用 fail())
标签: jquery json getjson when-js