我有此代码:
render() {
var urlstr : string = 'http://localhost:8081/dashboard2/sustain-master/resources/data/search_energy_performance_by_region.php';
urlstr = urlstr + "?division=sdsdfdsf";
urlstr = urlstr + "®ion=sfdsf";
urlstr = urlstr + "&date_from=sfdsf";
urlstr = urlstr + "&date_to=sfdsf";
urlstr = urlstr + "&sq_from=sfdsf";
urlstr = urlstr + "&sq_to=sfsd";
console.log("--------------------------");
fetch(urlstr)
.then(response => {
console.log("==================================");
console.log(response);
if(!response.ok){
(document.getElementById('result_div') as HTMLInputElement).innerHTML = 'error';
console.log("error");
}else{
(document.getElementById('result_div') as HTMLInputElement).innerHTML = 'ok';
console.log("ok");
}
});
console.log("--------------------------");
return(
<div id='result_div'>
test
</div>
)
}
请原谅console.log行,这是我试图跟踪此问题的原因。
但是,当在Node上调用该页面时,它应该调用远程服务器(在这种情况下,是在我的本地计算机上运行的apache服务器,该服务器对数据库运行选择并返回JSON对象),然后返回浏览器将“测试”字符串作为页面。然后,当这些东西完成运行后,应该在那个result_div中放入错误或确定。
我实际上知道对php页面的调用正在运行-我可以在该服务器上执行show processlist并查看执行中的选择。但是问题在于,打字稿代码似乎在完成向后发送数据后实际上从未进行过回调工作。
我在做什么错了?
答案 0 :(得分:0)
您是否忘记首先在响应中致电.json()
?
fetch(urlstr)
.then(response => {
if(!response.ok) {
(document.getElementById('result_div') as HTMLInputElement).innerHTML = 'error';
console.log("error");
} else {
(document.getElementById('result_div') as HTMLInputElement).innerHTML = 'ok';
console.log("ok");
}
return response.json();
})
.then(data => {
console.log(data);
});