使用fetch()函数可以发送HTTP请求并获取响应。当响应的状态码为非HTTP OK状态码时,可以通过fetch()的异常处理机制来捕获异常。
完善且全面的答案如下:
fetch()是一种现代的Web API,用于发送HTTP请求并获取响应。它是基于Promise的异步操作,可以在前端开发中用于与后端服务器进行数据交互。
当使用fetch()发送请求时,服务器会返回一个响应对象。这个响应对象包含了很多有用的信息,包括响应的状态码。HTTP状态码是服务器返回给客户端的一个三位数的数字,用于表示请求的处理结果。
在fetch()中,当响应的状态码为非HTTP OK状态码(如404 Not Found、500 Internal Server Error等)时,fetch()并不会抛出错误,而是会认为请求成功,并返回一个resolve状态的Promise对象。这意味着我们需要手动检查响应的状态码,并根据需要进行处理。
为了从非HTTP OK状态码读取响应正文并捕获异常,我们可以在fetch()的Promise链中添加一个条件判断,检查响应的状态码。如果状态码不是HTTP OK状态码,我们可以通过抛出一个自定义的异常来捕获错误,并进行相应的处理。
以下是一个示例代码:
fetch('https://example.com/api/data')
.then(response => {
if (!response.ok) {
throw new Error('HTTP error, status = ' + response.status);
}
return response.json();
})
.then(data => {
// 处理响应数据
console.log(data);
})
.catch(error => {
// 捕获异常并进行处理
console.error('Error:', error);
});
在上面的代码中,我们首先使用fetch()发送了一个GET请求到https://example.com/api/data。然后,我们在第一个.then()中检查响应的状态码。如果状态码不是HTTP OK状态码,我们抛出一个自定义的异常,将错误信息作为异常的描述。在第二个.then()中,我们可以继续处理响应的正文数据。最后,我们使用.catch()来捕获异常,并进行相应的错误处理。
推荐的腾讯云相关产品和产品介绍链接地址:
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云