我是新手,我为此道歉。 我正在编写一个将发出GET请求的脚本。结果是一个JSON数组,最好的办法是将它自动放入CSV / TXT文件中。
$.ajax({
type: "GET",
url: BASE_URL,
beforeSend: function(jqXHR) {
jqXHR.setRequestHeader("Authorization", "Basic " + Base64.encode(USERNAME + ":" + PASSWORD));
},
success: function(jimmi) {
// Output the results
if (typeof jimmi === "string") {
station = JSON.parse(jimmi);
}
var ar_len = jimmi.length
for (i=0; i < ar_len;) {
$("#results").html(
"Station: " + jimmi[i].name + "<br />")
i++
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error');
}
});
我的问题: *我只显示数组的最后一个元素,我无法弄清楚原因。 *我需要每5秒自动拨打一次电话 * JSON结果应写入CSV / TXT文件。
有人能帮助我吗? 顺便说一句,URL是https://its.navizon.com/api/v1/sites/1001/stations/,你可以使用demo@navizon.com登录 - 没有密码(只读)
答案 0 :(得分:0)
您的问题是,您正在通过更改整个内部HTML来更改#results
的每个元素的jimmi
内容。所以最后,只显示最后一个元素。您需要使用append
代替。要每5秒拨打一次电话,请使用setTimeout
方法。这样的东西:
function makeCall() {
$.ajax({
type: "GET",
url: BASE_URL,
beforeSend: function(jqXHR) {
jqXHR.setRequestHeader("Authorization", "Basic " + Base64.encode(USERNAME + ":" + PASSWORD));
},
success: function(jimmi) {
// Output the results
if (typeof jimmi === "string") {
jimmi = JSON.parse(jimmi);
}
for (i=0; i < jimmi.length; i++) {
$("#results").append("Station: " + jimmi[i].name + "<br />");
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error');
}
});
window.setTimeout(makeCall, 5000);
}
makeCall();
注意:行station = JSON.parse(jimmi);
无用,因为从不使用变量station
。我把它改成了更有意义的东西。