点击Login API将返回成功或失败响应。响应代码将是。 200到300之间的成功。休息将被归类为失败响应。在我的场景中,如果它的成功响应将是文本(response.text())。对于失败案例,它将产生Json(response.json())。
我希望根据失败和成功序列化响应。
方法我现在已经跟进了
fetch(restUrl, {
method: "POST",
headers: {
'Accept': '*/*',
'Content-Type': 'application/json',
},
body: JSON.stringify(objReq)
}))
.then(response => {
if (response.status >= 200 && response.status < 300) {
response.text()
} else {
response.json()
}
)
.then(responseJson => {
let obj = responseJson;
if (responseJson != null && responseJson != undefined) {} else {
alert(i18n.t('unable'));
}
})
.catch(error => {
alert(error + "-from error");
});
它不接受这种方法。请提供合适的解决方案。
答案 0 :(得分:2)
我认为你正在寻找像这样的东西
const fetchRequest = (restUrl, objReq) => fetch(restUrl, {
method: "POST",
headers: {
'Accept': '*/*',
'Content-Type': 'application/json',
},
body: JSON.stringify(objReq)
})
.then(response => {
if (response.status >= 200 && response.status < 300) {
return response.text()
} else {
throw response.json();
}
})
.then(responseText => {
console.log('success',responseText);
})
.catch(errorJson => {
console.log(errorJson);
});
你可以这样称呼它。
fetchRequest('url.com',{test:123});
实质上,当你获得200以外的状态代码时,只需抛出响应,你也忘了回复承诺