我正在从api端点获取数据。 它需要用户名,电子邮件,密码,名字,姓氏并将其注册到数据库。 现在,如果发生某些错误(例如已经使用过的电子邮件),则会给出400状态代码并将其发送
{
"err": "A user with the given email is already registered"
}
所以我想使用这个api端点。 在react js中,我正在这样做。
const printError=(err)=>{
if((typeof(err)=='string'))
return err
else if(err.err!=undefined)
return err.err
else if(err.message!=undefined)
return err.message
else
return 'Some error occured.Try Again later.'
}
fetch(BaseUrl+'users/signup',{
method:'post',
credentials:'include',
body:JSON.stringify(user),
headers:{
'content-type':'application/json'
}
})
.then(response=>{
console.log(response)
if(response.ok)
return response.json()
else{
throw new Error(response)
}
})
.then(response=>{
alert(response.status)
})
.catch(error => { console.log('Registration error');console.log(error); alert('Registration Failed\nError: '+printError(error)); });
请告诉我在已经收到电子邮件后如何获取此err对象。
答案 0 :(得分:0)
fetch提供了一个简单的ok标志,用于指示HTTP响应的状态代码是否在成功范围内。请参阅下面的链接以获取更多详细信息:
https://www.tjvantoll.com/2015/09/13/fetch-and-errors/
.then(response=>{
console.log(response)// this is response from server, including all ok and error responses
if(response.ok)
return response.json()
else{
console.log(response) ///error message for server should be in this response object only
}
})
答案 1 :(得分:0)
很抱歉自己问和说答案。 如果response.ok为假,则答案为throw response.json()。