如何从获取javascript请求的响应中获取数据
我用javascript发出获取请求。当我向控制台显示数据时,它正在提取数据。但是什么时候 我尝试在函数中提醒它,然后它显示为空。页面加载时会立即显示警报。我认为它会在请求响应之前发出警报 这是我的javascript代码如何从获取javascript请求的响应中获取数据,javascript,fetch,Javascript,Fetch,我用javascript发出获取请求。当我向控制台显示数据时,它正在提取数据。但是什么时候 我尝试在函数中提醒它,然后它显示为空。页面加载时会立即显示警报。我认为它会在请求响应之前发出警报 这是我的javascript代码 fetch("https://01b4e41e6262.ngrok.io/api/get_schedule_orders/" + gUser.getData().id).then(res => { if (res.ok) {
fetch("https://01b4e41e6262.ngrok.io/api/get_schedule_orders/" + gUser.getData().id).then(res => {
if (res.ok) {
alert(res)
}
});
fetch()。
然后res.json()
再次返回承诺,而不是直接返回值(您可以通过在第一个Then()
中执行console.log(res)
来验证这一点),在原型中,您将看到json()
,它再次基于承诺
这就是为什么我们通过执行return res.json()
来链接承诺,并在第二个承诺解析中获取数据,如果拒绝,则调用catch()
回调
fetch("https://01b4e41e6262.ngrok.io/api/get_schedule_orders/" + gUser.getData().id).then(res => {
if (res.status>=200 && res.status <300) {
return res.json()
}else{
throw new Error();
}
}).then(data=>console.log(data))
.catch(err=>console.log('fetch() failed'))
fetch(“https://01b4e41e6262.ngrok.io/api/get_schedule_orders/“+gUser.getData().id)。然后(res=>{
if(res.status>=200&&res.status console.log(数据))
.catch(err=>console.log('fetch()失败'))
更新:您的API返回一个空数组
请检查API参数
fetch()
最初返回一个Promise
,因此res最初是一个Promise,可以是已解决的,也可以是已拒绝的。
然后res.json()
再次返回承诺,而不是直接返回值(您可以通过在第一个Then()
中执行console.log(res)
来验证这一点),在原型中,您将看到json()
,它再次基于承诺
这就是为什么我们通过执行return res.json()
来链接承诺,并在第二个承诺解析中获取数据,如果拒绝,则调用catch()
回调
fetch("https://01b4e41e6262.ngrok.io/api/get_schedule_orders/" + gUser.getData().id).then(res => {
if (res.status>=200 && res.status <300) {
return res.json()
}else{
throw new Error();
}
}).then(data=>console.log(data))
.catch(err=>console.log('fetch() failed'))
fetch(“https://01b4e41e6262.ngrok.io/api/get_schedule_orders/“+gUser.getData().id)。然后(res=>{
if(res.status>=200&&res.status console.log(数据))
.catch(err=>console.log('fetch()失败'))
更新:您的API返回一个空数组
请检查API参数
Fetch API启动了一个由两个承诺组成的链
- 第一个承诺从服务器检索数据
- 第二个承诺解析检索到的数据(使用
.text()
,.json()
等)
示例(使用async/await
语法):
const getScheduleOrders = async (gUser) => {
const response = await fetch('https://01b4e41e6262.ngrok.io/api/get_schedule_orders/' + gUser.getData().id);
const scheduleOrder = await response.text();
await window.alert(scheduleOrder);
}
获取API启动一个由两个承诺组成的链
- 第一个承诺从服务器检索数据
- 第二个承诺解析检索到的数据(使用
.text()
,.json()
等)
示例(使用async/await
语法):
const getScheduleOrders = async (gUser) => {
const response = await fetch('https://01b4e41e6262.ngrok.io/api/get_schedule_orders/' + gUser.getData().id);
const scheduleOrder = await response.text();
await window.alert(scheduleOrder);
}
您应该转换到res.json
或res.text
以从响应中获取内容。这回答了您的问题吗?这回答了您的问题吗?关于如何访问获取
的响应中的数据,有很多很多堆栈溢出问题。您研究了哪些问题,为什么没有解决您的特定问题?您应该转换到res.json
或res.text
以从响应中获取内容。这是否回答了您的问题?这是否回答了您的问题?关于如何访问获取
响应中的数据,有很多很多堆栈溢出问题。您研究并解决了其中哪些问题为什么他们没有解决你的特定问题?@Bilal arshad:上面的代码也能处理你的错误,在所有情况下都能很好地工作。一定要接受答案。谢谢:)上帝保佑,编码快乐我正在尝试,但没有工作fetch(“https://01b4e41e6262.ngrok.io/api/get_schedule_orders/“+gUser.getData().id)。然后(res=>{if(res.status==200){return res.json();}}})。然后(data=>{$scope.schedule\u orders=data.data;alert(json.stringify(data.json())});
检查API是否工作正常。在catch()块中尝试console.log()。同时我将看看问题出在哪里:)我检查了它,你的API实际上返回了一个空数组。代码一切正常。在预览部分,我看到0:{id:10,devy\u user\u id:129731,…}在:null数据创建:“{”paymethod\u id:1,“business\u id:76,“delivery\u type”:“1”,“driver\u tip”:0,“delivery\u zone\u id”:6569,“delivery\u datetime”:null,“location”:RPM\”,“tag\:“home\”}“}”devy_用户id:129731 id:10计划日期:“2020-12-12 21:06:00”更新地址:null
@Bilal arshad:上述代码也能处理您的错误,并且在所有情况下都能很好地工作。一定要接受答案。谢谢:)上帝保佑,编码快乐我正在尝试,但没有工作获取(“https://01b4e41e6262.ngrok.io/api/get_schedule_orders/“+gUser.getData().id)。然后(res=>{if(res.status==200){return res.json();}})。然后(data=>{$scope.schedule\u orders=data.data;alert(json.stringify(data.json()))};
检查API是否工作正常。在catch()中尝试console.log()block.Mean虽然我会看到问题可能在哪里:)我检查了它,你的API实际上返回了一个空数组。代码一切正常。在预览部分,我看到0:{id:10,devy_user_id:129731,…}创建了空数据:{“paymethod_id”:1,“business_id”:76,“delivery_type”:“1”,“driver_tip”:0,“delivery_zone_id”:6569,“交货日期时间”:null,“地点”:RPM\“},\“标签\”:\“主页\“}”devy\u用户id:129731 id:10计划日期:“2020-12-12 21:06:00”更新地址:null