如何从获取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) {

我用javascript发出获取请求。当我向控制台显示数据时,它正在提取数据。但是什么时候 我尝试在函数中提醒它,然后它显示为空。页面加载时会立即显示警报。我认为它会在请求响应之前发出警报

这是我的javascript代码

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