之前做数据交互的时候,请求数据一直使用ajax,看到网上有使用Fetch,所以也想拿来尝尝鲜
本次介绍只涉及fetch相关,传统的ajax基本上不涉及
当然你也要考虑兼容。浏览器支持情况。
一会这个只扯一下,我所遇到的情况:
由于fetch的坑:
服务器返回 400,500 错误码时并不会 reject,只有网络错误这些导致请求不能完成时,fetch 才会被 reject。
那么,我们怎么处理http的错误代码呢?
接下来我们改造一下fetch的请求步骤
fetch('some-url')
.then(response => {
if (response.ok) {
return response.json()
} else {
return Promise.reject({
status: response.status,
statusText: response.statusText
})
}
})
.catch(error => {
if (error.status === 404) {
// do something about 404
}
})