获取资源很简单,发起一个请求出去,一个响应进来,然后该怎么操作就怎么操作。
fetch 的 api 使用的是 promise 规范,不会 promise(用于延迟(deferred) 计算和异步(asynchronous ) 计算。 一个 Promise 对象代表着一个还未完成,但预期将来会完成的操作。主要使用它处理回调黑洞。) 的请花几分钟学习一下。
使用 fetch 去获取数据的方式:
fetch("服务器地址")
.then(function(response) {
//将获取到的数据使用 json 转换对象
return response.json();
})
.then(function(data) {
//获取转换后的格式
console.log(data);
})
//如果有异常会在 catch 捕获
.catch(function(e) {
console.log("error");
});
有没有发现使用 fetch 后代码变优美了,不关心数据怎么请求的,把更多的精力放在处理数据上。
不用写回调函数了,也不用监听 xhr readystatechange 事件了,当数据请求回来后会传递给 then, 有异常就会直接触发 catch 事件。
fetch 默认发起的是 get 请求,如果需要 post 请求需要设置 Request
Request
Request 客户端向服务器发出请求的一个对象,包括用户提交的信息以及客户端的一些信息
使用 Request 构造一个 fetch 请求的对象的详细信息
//实例化 request 对象
var myRequest = new Request(url, Option);
fetch(myRequest)
.then(function(response) {
console.log(response);
})
//如果有异常会在 catch 捕获
.catch(function(e) {
console.log("error");
});
Request 详细参数配置:
method
设置请求方式
method = GET / POST / PUT / DELETE / HEAD
headers
设置请求头信息,使用 Headers 对象
let headers = new Headers({
'Content-Type': 'text/plain'
});
mode
请求的模式,主要用于跨域设置
mode = cors / no-cors / same-origin
cors : 跨域
no-cors : 不跨域
same-origin : 同源
credentials
需要向服务器发送 cookie 时设置
credentials = omit / same-origin
omit : 省略
same-origin : 发送同源 cookie
cache
cache = default / reload / no-cache
redirect
收到重定向消息时如何处理
redirect = follow / error / manual
follow : 跟随重定向的地址 ,继续请求
error : 不请求
比如:
var request = new Request("url", {
headers: new Headers({
"Content-Type": "text/plain"
}),
method : "POST",
mode: "cors",
redirect : "follow"
});
fetch(request)
.then((response) => {
console.log(response);
})
.catch((error)=>{
console.log(error);
});
fetch 数据处理
当 fetch 把请求结果拿到后,我们需要使用它提供的几个方法来做处理
json
fetch 提供了一个 json 方法将数据转换为 json 格式
fetch(url)
.then((response) => {
//返回 object 类型
return response.json();
})
.then((result) => {
console.log(result);
});
text
fetch 提供了一个 text 方法用于获取数据,返回的是 string 格式数据
fetch(url)
.then((response) => {
//返回 string 类型
return response.text();
})
.then((result) => {
console.log(result);
});
blob
如果我们获取的是一个图像,需要先设置头信息,然后 fetch 会正常处理本次请求,最终使用 blob 方法获取本次请求的结果, 可以把结果赋值给 img src 就能正常的显示一张图片
var request = new Request("xx.img", {
headers: new Headers({
"Content-Type": "image/jpeg"
}),
method : "get",
cache: 'default'
});
fetch(request)
.then((response) => {
return response.blob();
})
.then((stories)=>{
var objectURL = URL.createObjectURL(stories);
let img = document.createElement("img");
img.src = objectURL;
document.querySelector("body").appendChild(img);
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
Fetch,数据交互
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]