第十九篇 fetch请求

这篇具有很好参考价值的文章主要介绍了第十九篇 fetch请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第十九篇 fetch请求

        本篇就开始讲到关于请求的内容了,当然关于 Vue 的大部分还是会想到axios,因为这是官方推荐用的,了解 Vue 的知道在axios之前还有一个vue-resource,后来也由于作者尤雨溪声明vue-resource 已经不维护了,推荐使用这个axios,那么在此之前先来讲在这个fetch,为什么呢?因为它正是W3C的正式标准,即在任何页面当中不需要引入任何库,就可以直接来使用的;原生的XHR(XMLHttpRequest)是一个设计简陋的API,配置调用方式较为混乱,基于事件的异步不友好,且兼容性不好;那么就有了一套新的标准 —— fetch ;

第十九篇 fetch请求

打开控制台Network可以看到能够过滤出Fetch和XHR的请求;第十九篇 fetch请求

既然fetch是 W3C 的一套标准,那么先来简单讲fetch的一个基本使用和操作;

fetch

点击 "按钮" 时进行fetch请求数据:

第十九篇 fetch请求

        那么请求的数据去哪里弄呢?先来模拟一下用json数据,先在目录下创建一个 fetch.json的一个文件,并能够访问到fetch.json;

// 模拟的json数据
{
	"name":"zs",
	"age":18
}

Live Server

        这里需要安装一个小工具,一个具有实时加载功能的小型服务器 live-server,这里用的是vscode 编译器;

第十九篇 fetch请求

         安装完成之后下次可以右键点击【open with server】,这样一来就能当都将我们的静态文件运行起来,就像一个临时的开发环境;

第十九篇 fetch请求

第十九篇 fetch请求

第十九篇 fetch请求


get 请求 

         编写button的点击事件发送请求,返回输出在控制台上;

methods:{
    handleClick(){
        fetch("fetch.json")
            .then(res=>{console.log(res);})
    }
}

第十九篇 fetch请求

        那么我想获取的是刚刚模拟在json当中的数据;如何拿到呢?将拿到的res进行res.json(),把它转成json对象

handleClick(){
    fetch("fetch.json")
        .then(res=>res.json())  // .then(res=>{return res.json()})
            .then(res=>{console.log(res);})
}

第十九篇 fetch请求

         res.json ? 那么用res.text ?

第十九篇 fetch请求

res.json() 拿到的是json数据 ;res.text() 拿到的是字符串数据;

以上是get请求的内容,默认就是get请求所以可以不用添加method:get,如果要添加怎么写?

handleClick(){
    fetch("fetch.json",{method:'GET'})
        .then(res=>res.json())
            .then(res=>{console.log(res);})
}

post 请求

         我们知道get和post请求方式不同,get请求后端只有一种接收的方式,即将上述代码换成fetch( "fetch.json?name=zs&age=18" ),可以在浏览器过滤看到:

第十九篇 fetch请求

        但 post 就不一样了,post 就有两种方式,这是发送的时候就需要告诉后端我们传的是什么编码格式,一种是 application/x-www-form-urlencoded,还有一种是 application/json ,那么将我们的数据放在body里面,先来第一种的 post 写法:

application/x-www-form-urlencoded

handleClick(){
    fetch("请求地址",{
            method:'POST', // 请求方式
            headers:{ "Content-Type":"application/x-www-form-urlencoded" },
            body:"name=li&age=18"
        },
    )
        .then(res=>res.json())
            .then(res=>{console.log(res);})
}

 application/json

handleClick(){
    fetch("请求地址",{
            method:'POST', // 请求方式
            headers:{ "Content-Type":"application/json" },
            body: JSON.stringify({
                name:"zs",
                age:18
            })
        },
    )
        .then(res=>res.json())
            .then(res=>{console.log(res);})
}

注意:fetch请求默认是不带有cookie的,需要设置fetch(url,credentials:'include'})

fetch 小用一下

         这里就用fetch去请求模拟的数据回来,然后将数据渲染到我们的页面上来;

json数据

{
	"List":[
		{
			"id":1,
			"name":"艾米",
			"age":18,
			"headImg":"https://img2.baidu.com/it/u=2872801224,2270670435&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"
		},
		{
			"id":2,
			"name":"迈克",
			"age":18,
			"headImg":"https://img0.baidu.com/it/u=454473805,1428077160&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500"
		},
		{
			"id":3,
			"name":"莉莎",
			"age":18,
			"headImg":"https://img0.baidu.com/it/u=91867198,3957775187&fm=253&fmt=auto&app=138&f=JPEG?w=506&h=500"
		}
	]
}

第十九篇 fetch请求

 通过fetch按钮的点击获取到模拟的List当中的数据,接下来对数据进行处理渲染;

第十九篇 fetch请求

<div id="app">
    <button @click="handleClick">fetch</button>

    <div class="info" v-for="item in List" :key="item.id">
        <img :src="item.headImg" alt="img">
        <p>名字:{{item.name}}</p>
        <p>年龄: {{item.age}}</p> 
    </div>

</div>
<script>
    new Vue({
        el:'#app',
        data:{
            List:[]
        },
        methods:{
            handleClick(){
                fetch("fetch.json",{method:'GET'})
                    .then(res=>res.json())
                        .then(res=>{
                            this.List = res.List
                            console.log(this.List)
                        })
            }
        }
    })
</script>

         本篇内容就是记录fetch的一个基本内容以及了解fetch,下篇内容可能会讲到这个axios的使用,喜欢和在学的可以了解一下然后可以对比 fetch 和 axios !

第十九篇 fetch请求文章来源地址https://www.toymoban.com/news/detail-494633.html

到了这里,关于第十九篇 fetch请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【从零开始学习JAVA | 第二十九篇】Stream流

    目录 前言: Stram流: 设计目标: 使用步骤: 1.先得到一条Stream流,并把数据放上去。 2.利用Stream流中的各种API进行操作。 使用Stream流的注意事项: 总结:         本文我们将学习Stream流,他就像流水线一样,可以对我们要处理的对象进行逐步处理,最终达到我们想要的效果

    2024年02月17日
    浏览(48)
  • 第十九篇【传奇开心果系列】Python的OpenCV库技术点案例示例:文字识别与OCR

    OpenCV文字识别与OCR:用于识别图像中的文字内容,并进行光学字符识别。 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了丰富的图像处理计算机视觉算法。虽然CV 本身并不包含专门的 OCR(Optical Character Recognition,光学字符识别)功能,但可以配合其他

    2024年02月20日
    浏览(55)
  • JavaScript从入门到精通系列第二十九篇:正则表达式初体验

      文章目录 一:正则表达式 1:简介 2:正则表达式 3:检查字符串         正则表达式应用的场景是什么呢?比方说检查客户注册的电子邮件的格式的标准性。让计算机基于固定的格式,去检测用户输入的电子邮件地址是不是正确的电子邮件地址。         正则表达式用于

    2024年02月06日
    浏览(61)
  • 第二十九篇、基于Arduino uno,控制MP3Player mini模块播放音乐——结果导向

    说明:通电后播放对应的歌曲,可以选择循环播放还是播放一次,也可以通过串口指定播放对应的音乐,如果是你想要的,可以接着往下看。 说明:虽然MP3Player mini模块有很多型号,但是原理和代码都是适用的。 说明:只需要连接六根线。 引脚图: uno————MP3Player mini模

    2024年02月03日
    浏览(57)
  • 第十九章 类的继承

    面向对象三大特点:封装,继承,多态 封装:打包 继承:一个对象A不具有某个功能a,通过某种方式使用了对象B的a功能 的过程 多态:对象或功能的多种形态,在使用某个对象时,不关心从哪来,在封装某个对象时,不关心将要在哪被使用 继承 构造函数执行之后得到的实例

    2024年02月01日
    浏览(52)
  • 第十九章 Unity 其他 API

    本节介绍一些其他经常使用的Unity类。首先,我们回顾一下Vector3向量类,它既可以表示方向,也可以表示大小。它在游戏中可以用来表示角色的位置,物体的移动/旋转,设置两个游戏对象之间的距离。在我们之前的课程中,我们讲过向量的一些运算。例如向量的加法可以表示

    2024年02月05日
    浏览(42)
  • 【OpenCV】第十九章: 视频操作入门

    第十九章: 视频操作入门 一段视频是由很多张静态图片组成的,很多个静态图像组成一段视频。 一个静态图像我们称为一帧,每一帧都是一张静止图像。帧可以以固定的时间间隔从视频中提取,然后对其使用图像处理的方法进行处理,就达到了处理视频的目的。 帧数指每秒

    2024年02月03日
    浏览(46)
  • 第十九章:Linux中安装MySQL

    查看是否安装过 MySQL MySQL 卸载 关闭 ,ysql 服务 查询当前 mysql 安装状态 卸载上述命令【任意一条就行】查询出的已安装程序 注意:务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留。 删除 mysql 相关文件 删除 my.cnf 【 MySQL 的配置文件】 检查 /tmp 临时目录权限

    2024年02月13日
    浏览(44)
  • 【Vue3 第十九章】插槽 slot

    数字化管理平台 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus 权限系统-商城 个人博客地址 在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段。这就用到了插槽。 插槽是子组件中的提供给父组件使用的一个占位符,用 slot 表示,父组件可以

    2024年02月09日
    浏览(40)
  • 算法通关村第十九关——最小路径和

    LeetCode64. 给定一个包含非负整数的 m × n 网格 grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 输入:grid=[[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径1→3→1→1→1的总和最小。 对于每一块方块来说,只能从他的上边或者左边走过来,所以在for循环中

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包