关于fetch网络请求

Posted ~往无前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于fetch网络请求相关的知识,希望对你有一定的参考价值。

fetch也是内置的一种发送网络请求的方法,它和xhr的性质一样式window自带的。

优势在于:可以不使用第三方的请求库就可以进行网络请求。

fetch('/api/search/user2?q=${keyword}').then(res=>{
	console.log("联系服务器成功了")
    //这里的 res.json()返回的是一个promise对象
    return res.json()
},
 //error=>{
	//console.log("联系服务器失败了",error)
    //返回一个空的promise,这时候promise的状态一直为pendding,所以不会继续往下进行
    //return new Promise(()=>{})
//}
).then(
    res=>{console.log("获取数据成功",res)},
   // error=>{console.log("获取数据失败",error)}, 
).catch(
    //统一处理问题
	(error)=>{
        console.log("请求出错",error);
    }
)
//这里的成功和失败,并不是取决于返回数据的问题,而是看是否成功的连上了服务器,连上之后,如果服务器发现所访问的内容是错误的,这时候会触发error回调函数。

上面是用promise方式进行的网络请求处理,接下来使用await的方式进行:

try{
    const response=await fetch("/api/search/users?q=${keyWord}")
	const data=await response.json()
	console.log(data)
}catch(error){
    console.log("请求出错",error)
}

fetch的兼容性不是很好。很多老版本的浏览器可能不支持。所以一般情况下并不使用该方法进行网络请求。

以上是关于关于fetch网络请求的主要内容,如果未能解决你的问题,请参考以下文章

关于fetch网络请求

React Native / Expo:Fetch 抛出“网络请求失败”

ReactNative——fetch封装新姿势

关于React Native使用axios进行网络请求的方法

React Native / Expo iOs - 网络请求因我的 Api 上的 Fetch 而失败

VSCode自定义代码片段14——Vue的axios网络请求封装