欢迎来真孝善网,为您提供真孝善正能量书籍故事!

高效数据抓取与获取策略揭秘

时间:11-13 民间故事 提交错误

此功能以前是使用XMLHttpRequest 实现的。

Fetch 提供了更理想的替代方案,可以很容易地被其他技术使用,

例如Service Workers(en-US)。 Fetch 还提供了专用的逻辑空间来定义其他与HTTP 相关的概念。

例如CORS 和HTTP 扩展。

简单总结一下,它和axios类似,使用Promise语法。

但浏览器原生支持,无需下载第三方文件。

3. 基础语法 get请求

3.1 简要demo

让registerFn=()={

fetch(`/getData?name=${userName.value}password=${password.value}`).then(res={

返回res.json()

}).then(res={

console.log("得到结果:", res)

}).catch(错误={

console.log("错误:",错误)

})

}

3.2 简要分析

默认是使用2 个参数请求fetch()。

参数1: 服务器地址

参数2: 可选配置参数

HTTP请求的方法、头部和数据体都在这个对象中设置。 3. fetch()采用模块化设计,API分散在多个对象(Response对象、Request对象、Headers对象)

4.fetch()使用Promise,不使用回调函数,因此大大简化了写法,更加简洁。

5.response是一个Stream对象

3. 配置参数

HTTP请求的方法、头部、数据体都在这个对象中设置。

{

body: JSON.stringify(data), //必须匹配"Content-Type"

cache: "no-cache", //是否缓存,可能的值,no-cache,重新加载,force-cache,only-if-cached

凭证: "同源", //包含, 同源, *省略

标题: {

"user-agent": "Mozilla/4.0 MDN 示例",

"内容类型": "应用程序/json"

},

method: "POST", //*GET、POST、PUT、DELETE 等

mode: "cors", //无cors, cors, *同源

redirect: "follow", //手动, *follow, 错误

referrer: "无引荐", //*客户端, 无引荐

}

3.1 credentials

包含浏览器发送cookie(即使是跨域来源)

仅当同源和脚本同源时才会发送cookie。

省略不使用cookie

3.2 第一个then

一般情况下,第一个then用于格式化数据。

例如: res.json()

4. post请求 常用配置

服务器是使用节点在本地编写的

下面是如何写帖子

让loginFn=异步()={

让数据={

name: "yzs",

密码:"123456"

}

尝试{

让res=等待fetch("/登录", {

method: "POST",

body:JSON.stringify(数据)

}).then(res=res.json())

console.log("发布结果:", res)

} 捕获(错误){

//在fetch 中捕获

console.log("error:", 错误)

}

}

5. post 单文件上传

let upload=async()={

let file=document.querySelector("input[type=file]").files[0];

//表单数据对象

让formatData=new FormData()

//第一个键文件信息

//第二个值是对应的值文件

//将上传的内容添加到表单数据对象中

formatData.append("fileInfo", 文件)

尝试{

让res=等待fetch("/myupload", {

method: "POST",

body:格式数据

}).then(res=res.json())

showImg.src=res.path

console.log("成功:", res);

} 捕获(错误){

console.log("错误", 错误)

}

6. post 多文件上传配置

var formData=new FormData();

var photos=document.querySelector("input[type="file"][multiple]");

formData.append("title", "我的维加斯假期");

//formData 只接受文件、blob 或字符串。数组不能直接传递,所以必须嵌入循环中

for (让i=0; i photos.files.length; i++) {

formData.append("照片", photos.files[i]);

}

7. 重点 post 请求头配置

帖子的正文数据必须与content-type匹配,否则请求将不会成功。

7.1 json数据配置

const 响应=await fetch("/login", {

method: "POST",

body: JSON.stringify({ name: "yzs 尹", 密码:"123456" }),

标题: {

"内容类型": "application/json;charset=utf-8"

}

})

7.2 key-value配置

const response=wait fetch("/list", {

method: "POST",

标题: {

"内容类型":"application/x-www-form-urlencoded;字符集=UTF-8",

},

body: "名称=yzs密码=123456"

})

7.3 表单配置

const form=document.querySelector("form");

const 响应=等待fetch("/提交", {

method: "POST",

body: 新的FormData(表单)

})

7.4 上传配置

const input=document.querySelector("input[type="file"]");

常量数据=新FormData();

data.append("文件", input.files[0]);

//追加附加数据

data.append("name", "yzs");

fetch("/上传", {

method: "POST",

body:数据

});上传必须通过表单,所以和表单提交几乎一样。

7.4 二进制数据

转换某些图像时将使用二进制上传。

让blob=等待新的Promise(resolve=canvasElem.toBlob(resolve, "image/png")

);

让响应=等待获取("/用户/头像",{

method: "POST",

body:datacanvasElem 使用canvas的toBlob函数

您还可以使用画布的toDataURL

好了,文章到这里就结束啦,如果本次分享的高效数据抓取与获取策略揭秘和问题对您有所帮助,还望关注下本站哦!

用户评论

走过海棠暮

用fetch 做请求真的方便啊!

    有16位网友表示赞同!

月下独酌

学习一下 fetch 的用法,感觉比 XMLHttpRequest 简洁很多。

    有14位网友表示赞同!

蔚蓝的天空〃没有我的翅膀

想做个 API 接口,看资料说 fetch 用起来比较好。

    有9位网友表示赞同!

怀念·最初

什么样的网站都需要用到 fetch 啊?

    有17位网友表示赞同!

仅有的余温

fetch 比较新吗?我好像还是用的老的 XMLHttpRequest。

    有5位网友表示赞同!

心悸╰つ

是不是用 fetch 可以处理异步请求啊?

    有6位网友表示赞同!

南初

前端开发必备吧,要学一学。

    有19位网友表示赞同!

抓不住i

学一下 fetch 的用法,然后把我的项目改造下试试!

    有11位网友表示赞同!

秒淘你心窝

有什么好的 fetch 学习资源推荐吗?

    有9位网友表示赞同!

一笑抵千言

fetch 能获取不同类型的文件吗?

    有18位网友表示赞同!

艺菲

感觉 fetch 比 XMLHttpRequest 更人性化吧。

    有20位网友表示赞同!

看我发功喷飞你

可以用 fetch 做跨域请求吗?

    有5位网友表示赞同!

关于道别

想了解一下 fetch 在 Node.js 中的使用。

    有14位网友表示赞同!

素婉纤尘

fetch 是浏览器提供的接口吗?

    有15位网友表示赞同!

南宫沐风

用 fetch 实现的请求有什么优缺点呢?

    有9位网友表示赞同!

人心叵测i

我在使用 fetch 的时候遇到了问题,不知道怎么解决.

    有18位网友表示赞同!

半梦半醒半疯癫

有人能分享一下常用的 fetch 技巧吗?

    有13位网友表示赞同!

Edinburgh°南空

是不是用 fetch 最好?还是其他方法更合适?

    有20位网友表示赞同!

花海

学了 fetch 后,会让前端开发更方便吗?

    有8位网友表示赞同!

爱到伤肺i

用 fetch 做数据请求,安全性怎么样呢?

    有13位网友表示赞同!

【高效数据抓取与获取策略揭秘】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活