Javascript API总是返回200,响应中没有数据
我正在尝试向api.postcodes.io/postcodes/:postcode/validate发出请求,以检查我输入的邮政编码是否有效。如果我通过网站这样做,当我输入一个有效的邮政编码和状态:200时,我得到一个200响应,布尔结果设置为true,当我输入一个随机数时,结果设置为false。然而,当试图通过我的代码实现这一点时,我没有得到任何结果。有什么问题吗?我尝试使用.json()解析结果,但这只是给了我一个错误 这是我的要求:Javascript API总是返回200,响应中没有数据,javascript,api,Javascript,Api,我正在尝试向api.postcodes.io/postcodes/:postcode/validate发出请求,以检查我输入的邮政编码是否有效。如果我通过网站这样做,当我输入一个有效的邮政编码和状态:200时,我得到一个200响应,布尔结果设置为true,当我输入一个随机数时,结果设置为false。然而,当试图通过我的代码实现这一点时,我没有得到任何结果。有什么问题吗?我尝试使用.json()解析结果,但这只是给了我一个错误 这是我的要求: const requestURL = 'https:/
const requestURL = 'https://api.postcodes.io/postcodes/' + addedPostcode + '/validate';
try {
console.log("enters try");
const response = yield fetch(requestURL, {
method: 'GET',
});
if(response.status === 200){
console.log("enters 200");
yield put({type: 'SHOW_ALERT', payload: {alertType: 'success', alertMessage: 'POST CODE VALID'}});
const updatedUser = yield response;
console.log(updatedUser);
} else{
console.log("enters 400");
const description = 'POST CODE INVALID';
yield put({type: 'SHOW_MODAL', payload: {type:'error', description}});
return;
}
} catch (e) {
console.log(e);
}
解决方案:需要使用.json()解析响应。它以前失败的原因是因为我的请求url缺少“https://”部分。我认为它们总是返回200的状态。但如果您输入有效的英国邮政编码,它们将返回
{
"status": 200,
"result": true
}
否则返回“result”:false
我已使用以下请求url对其进行了测试:api.postcodes.io/postcodes/SO152GB/validate
尝试更改此行
if(response.status==200){
对此
if(response.result&&response.result==true){
此请求中有两种状态,我认为您有点困惑
第一个状态来自fetch请求。
二是来自反应体
您可以通过以下方式检查这些状态:
const requestURL='1〕https://api.postcodes.io/postcodes/SO152GB/validate';
const response=等待获取(requestURL{
方法:“GET”,
});
如果(response.status==200){
//你可以通过这种方式进入身体。
const body=wait response.json();
如果(body.status==200){
//你的生意
}
}
您试图验证的值在代码中的什么位置?它是否已经是requestURL
的一部分?我在新编辑中添加了它。是的,我刚刚注意到这一点,将重新购买我的问题,因为我没有收到任何结果。获取请求的状态代码,而不是在正文中。我认为response.result以这种方式不可用。需要JSO使变为中性。