如何解决GET请求给出200,但未调用函数
我正在执行GET请求以显示文档数据,尽管我收到了200个 ,但有返回的数据,但是该函数的作用就像没有任何数据一样。我正在传递令牌,我相信它已正确传递,并且在控制台中未收到任何错误消息。
代码:
let _state = {isLoaded: false},_dmsDocs,// other things
// export default class and constructor are here
setToken(tkn){
_state.token = tkn;
if(_state.isLoaded != true) {
loadREST();
_state.isLoaded = true;
}
}
// this is where async function getDocumentData() is
async function loadREST(){
axios.get(`${_Something}/etc/GetAllDocs?DocNumber=00000`,{
withCredentials: true,headers: {
accept: "Application/json;odata=verbose","Content-Type": "application/json","Authorization": _state.token
}
}).then(dms => {
if(dms.data && dms.data.length > 0) {
$(".docs .dms").removeClass("d-none");
$(".docs .msg").addClass("d-none");
_dmsDocs = dms.data;
getDocumentData(); // not hit
} else {
$(".docs .dms").addClass("d-none");
$(".docs .msg").removeClass("d-none").html("<h4>No Documents Found</h4>");
}
}).catch(err => {
console.log(err);
});
}
由于某种原因,_dmsDocs
在我的监视列表中显示为“未定义”,并且我认为弄清楚这可能是我正在寻找的解决方案。除此之外,对于我的一生,我无法弄清楚为什么我的代码不符合预期。
这是调试器中的代码。您可以看到200
和跳过函数调用的代码。
下面是_state.token
的摘要,其中显示了我令牌的前几位:
解决方法
dms.data
的值用大括号括起来,这意味着它是一个对象,而不是数组。因此,它可能没有length
属性。因此,dms.data.length > 0
为假,因此条件if (dms.data && dms.data.length > )
为假,它进入else
块。
由于您没有显示dms.data
对象的实际内容,因此我不知道该如何纠正。也许它包含一个数组,您可以改为测试该数组的长度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。