我有一个fetch,当点击一个按钮返回JSON。
$("#search").click(function(event){
var e = document.getElementById("lineDesc");
var line = e.options[e.selectedIndex].text;
var month = document.getElementById("descMonth").value;
var desc = $("#lineDescAr").val();
var search = document.getElementById("searchtab");
let fd = new FormData();
fd.set('line', line);
fd.set('month', month);
fd.set('desc', desc);
fetch('search.php',{method:'POST',body: fd})
.then( r=> {r.json(); console.log(r);})
.then( json=>{ //undefined even though response is json
search.innerHTML="";
Object.keys( json ).forEach( key=>{
let obj=json[ key ];
//search.innerHTML +='<div class="cell">'+/*line*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*scanner*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*fault*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*duration*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*date*/+'</div>';
})
})
event.preventDefault();
});
当我运行它时,.then(json=>
为空。
在网络分析中,响应是这样的。
[{"line":"L411A","scanner":"Gesamt","fault":"elektrisch","description":"L411A-Test","duration":"100","date":"2021-08-17 07:09:27"}]
所以它不是空的,但json是?
谢谢你的帮助。
如果有人能告诉我如何正确访问返回的数据,我将不胜感激。
第一个没有返回任何东西,所以第二个被定义为参数
$("#search").click(function(event){
var e = document.getElementById("lineDesc");
var line = e.options[e.selectedIndex].text;
var month = document.getElementById("descMonth").value;
var desc = $("#lineDescAr").val();
var search = document.getElementById("searchtab");
let fd = new FormData();
fd.set('line', line);
fd.set('month', month);
fd.set('desc', desc);
fetch('search.php',{method:'POST',body: fd})
.then( r=> r.json() )
.then( json=>{ //undefined even though response is json
search.innerHTML="";
Object.keys( json ).forEach( key=>{
let obj=json[ key ];
//search.innerHTML +='<div class="cell">'+/*line*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*scanner*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*fault*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*duration*/+'</div>';
//search.innerHTML +='<div class="cell">'+/*date*/+'</div>';
})
})
event.preventDefault();
});