Vue接口调用(一)fetch用法

article/2025/7/9 15:15:31

Vue接口调用🔥

接口调用地址
Vue接口调用(一)fetch用法https://blog.csdn.net/m0_55990909/article/details/123957200
Vue接口调用(二)axios用法🔥https://blog.csdn.net/m0_55990909/article/details/123981283
Vue接口调用(三)async/await用法🔥https://blog.csdn.net/m0_55990909/article/details/123981292

目录总览:

1. fetch概述

基本特性

  • fetch是传统ajax的升级版本,是原生js
  • 更加简单的数据获取方式,功能更强大,更灵活,可以看作是xhr的升级版。
  • 基于Promise实现

语法结构

fetch(url).thne(fn2).thne(fn3)....then(fn)

2. fetch的基本用法

  • 第一个.then接收到的是Promise数据集
  • 需要被.then处理才可以看到 我们最终想要的数据。

//客户端请求
<body><script type="text/javascript">//Fetch API 基本用法fetch('http://localhost:3000/fdata').then(function(data){// text()方法属于fetchAPI的一部分,它返回一个Promise实例对象,用于获取后台返回的数据return data.text();}).then(function(data){console.log(data);})</script>
</body>//服务器响应
app.get('/fdata', (req, res) => {res.send('Hello Fetch!')
})

3. fetch请求参数

常用配置选项:

  • method(String):HTTP请求方法,默认为GET(GET、DELETE、POST、PUT)
  • body(String):HTTP请求参数
  • headers(Object):HTTP的请求头,默认为{}
3.1 get请求方式的参数传递
第一种方式
//客户端请求
<body><script type="text/javascript">//GET参数传递-传统URLfetch('http://localhost:3000/books?id=123', {method: 'get'}).then(function(data){return data.text();}).then(function(data){console.log(data)});</script>
</body>//服务器响应
app.get('/books', (req, res) => {res.send('传统的URL传递参数!' + req.query.id)
})

第二种方式(restful形式的url)
//客户端请求
<body><script type="text/javascript">//GET参数传递 - restful形式的URLfetch('http://localhost:3000/books/456', {method: 'get'}).then(function (data) {return data.text();}).then(function (data) {console.log(data)});</script>
</body>//服务器响应
app.get('/books/:id', (req, res) => {res.send('Restful形式的URL传递参数!' + req.params.id)
})

3.2 delete请求方式的参数传递
//客户端请求
<body><script type="text/javascript">//DELETE请求方式参数传递fetch('http://localhost:3000/books/789', {method: 'delete'}).then(function (data) {return data.text();}).then(function (data) {console.log(data)});</script>
</body>//服务器响应
app.delete('/books/:id', (req, res) => {res.send('DELETE请求传递参数!' + req.params.id)
})

3.3 post请求方式的参数传递
  • body用于向后台传递数据
  • headers请求头需要配置content-type内容类型(后面的值是固定的),才可以传过去
第一种方式

传递的是传统格式的参数

//客户端请求
<body><script type="text/javascript">//POST请求传参fetch('http://localhost:3000/books', {method: 'post',body: 'uname=lisi&pwd=123',headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).then(function (data) {return data.text();}).then(function (data) {console.log(data)});</script>
</body>//服务器响应
app.post('/books', (req, res) => {res.send('POST请求传递参数!' + req.body.uname + '---' + req.body.pwd)
})

第二种方式

传递的是Json格式的参数

//客户端请求
<body><script type="text/javascript">//POST请求传参fetch('http://localhost:3000/books', {method: 'post',body: JSON.stringify({uname: '张三',pwd: '456'}),headers: {'Content-Type': 'application/json'}}).then(function (data) {return data.text();}).then(function (data) {console.log(data)});</script>
</body>//服务器响应
app.post('/books', (req, res) => {res.send('POST请求传递参数!' + req.body.uname + '---' + req.body.pwd)
})

  • 可以接受json格式参数的原因:有bodypaser中间键

3.4 put请求方式的参数传递
  • put请求方式的参数传递:一般提交的数据,用于修改原有数据
    • put也支持第一种 传递传统表单text形式的参数
    • json格式需要后台提供支撑,也就是bodyParser中间键
//客户端请求
<body><script type="text/javascript">//PUT请求传参fetch('http://localhost:3000/books/123', {method: 'put',body: JSON.stringify({uname: '张三',pwd: '789'}),headers: {'Content-Type': 'application/json'}}).then(function (data) {return data.text();}).then(function (data) {console.log(data)});</script>
</body>//服务器响应
app.put('/books/:id', (req, res) => {res.send('PUT请求传递参数!' + req.params.id + '---' + req.body.uname + '---' + req.body.pwd)
})

4. fetch响应结果

  • text():将返回体处理成字符串类型
  • json():返回结果和JSON.parse(responseText)一样
第一种方式text
//客户端请求
<body><script type="text/javascript">//Fetch响应text数据格式fetch('http://localhost:3000/json').then(function(data){return data.text();}).then(function(data){var obj = JSON.parse(data);console.log(obj.uname,obj.age,obj.gender)})</script>
</body>//服务器响应
app.get('/json', (req, res) => {res.json({uname: 'lisi',age: 13,gender: 'male'});
})
  • data类型为字符串,无法直接访问属性的值

处理方式(访问到具体属性值):

1.使用JSON.parse()把字符串转化成对象
var obj = JSON.parse(data)
2.使用 obj.属性名 得到属性值
console.log(obj.uname)

第二种方式json
//客户端请求
<body><script type="text/javascript">//Fetch响应json数据格式fetch('http://localhost:3000/json').then(function(data){return data.json();}).then(function(data){console.log(data.uname)})</script>
</body>//服务器响应
app.get('/json', (req, res) => {res.json({uname: 'lisi',age: 13,gender: 'male'});
})

  • 返回的data是object对象,可以直接获取对象中属性的值 (data.属性名)


http://chatgpt.dhexx.cn/article/4d3QpqGr.shtml

相关文章

Fetch使用方法

前言&#xff1a; fetch是用来取代传统的XMLHttpRequest的。 它的优点很多&#xff0c;包括链式调用的语法、返回promise等。 什么是fetch? fetch api是基于promise的设计&#xff0c;它是为了取代传统xhr的不合理的写法而生的。 WHY fetch&#xff1f; xhr请求写起来非常的混…

彻底关闭烦人的---FF新推荐

1、进入控制面板——>管理工具——>服务 找到Flash Helper Service服务 2、进入控制面板——>管理工具——>任务计划程序 找到FlashHelper TaskMachineCore的任务&#xff0c;将其删除

如何关闭flashhelper的ff新推荐广告弹窗

描述&#xff1a;如何关闭flashhelper的ff新推荐广告弹窗 步骤&#xff1a; 方法一&#xff0c;直接C盘搜索flashhelper文件&#xff0c;删除即可方法二&#xff0c;在计算机管理服务里面&#xff0c;找到flashhelper禁用

ff新推荐的关闭办法

这个是flash的广告 如果直接删除Adobe Flash Helper会导致flash的不正常使用 建议是winR在输入框中输入service&#xff0c;在service里找到 然后停用再禁用掉就可以了

“FF新推荐”猥琐的弹窗如何关闭?

自己的电脑中时常会弹出一个叫“FF新推荐”的广告弹窗&#xff0c;扰民不说显示的内容也很猥亵。 特别是在演示文档&#xff0c;开会时就特别尴尬。 1. FF新推荐是个什么鬼&#xff1f;只要你安装了Flash控件会自动更新弹窗这个莫名其妙&#xff0c;十分尴尬的弹窗&#xff0…

禁用FF新鲜事广告

不知道啥时候起&#xff0c;电脑开机之后总会弹出莫名其妙的FF新鲜事广告&#xff0c;如图 定睛一看&#xff0c;Flash助手推荐&#xff0c;原来Flash才是罪魁祸首。这不能忍。打开任务管理器&#xff0c;不停按f&#xff0c;可以找到一个叫Flash Helper Service的进程&#xf…

FF新推荐弹窗怎么彻底让他爬

背景&#xff1a;不知道怎么就捆绑安装了这个流氓软件&#xff0c;还找不到位置&#xff0c;不知道在哪删&#xff1f;今天突然灵机一动试了一下这个方法&#xff0c;然后可行 第一步&#xff1a;守株待兔——等他不经意的弹出 第二步&#xff1a;欲擒故纵——点击右上角菜单创…

git merge之--no-ff 的作用

禁止使用快进模式 no-fast—forward $ git merge --no-ff -m "merge with no-ff" dev在许多介绍 Git 工作流的文章里&#xff0c;都会推荐在合并分支时&#xff0c;加上 --no-ff 参数&#xff1a; $ git checkout develop $ git merge --no-ff feature–no-ff 在这的…

如何卸载FF推荐?

很多小伙伴们都发现&#xff0c;近一段时间&#xff0c;自己的电脑中时常会弹出一个叫“FF新推荐”的广告弹窗&#xff0c;扰民不说显示的内容也很猥亵。按理说&#xff0c;电脑上开启拦截软件后&#xff0c;一般的广告弹窗是不会出现的&#xff0c;那么这个能跳过安全工具拦截…

git merge 合并时 --no-ff 的作用——主要影响版本回退(好文章!)

在许多介绍 Git 工作流的文章里&#xff0c;都会推荐在合并分支时&#xff0c;加上 --no-ff 参数&#xff1a; $ git checkout develop$ git merge --no-ff feature --no-ff 在这的作用是禁止快进式合并。我们平常什么都不加的时候&#xff0c;则使用默认的 --ff &#xff0c…

win10如何禁用\删除讨厌的ff新鲜事(ff新推荐)(flash弹窗广告)

雾草&#xff0c;Adobe Flash植入的这种广告太变态了&#xff01; 定位&#xff1a; 打开运行窗口&#xff08;winr&#xff09;&#xff0c;输入“services.msc”&#xff0c;之后回车确定 然后我们在弹出来的窗口中找到“flash helper service”选项&#xff0c;之后右键…

#FF00FF(255,0,255)应该是紫色(Purple),把#FF00FF称为“品红”(“洋红/Magenta”)是一种误称

作者&#xff1a;❄️固态二氧化碳❄️ (主页) 链接&#xff1a;#FF00FF(255,0,255)应该是紫色(Purple),把#FF00FF称为"品红"(“洋红/Magenta”)是一种误称 - 固态二氧化碳的博客 - CSDN博客 来源&#xff1a;CSDN博客 发表时间&#xff1a;2019年06月02日 18:31:06 …

音乐推荐系统

✨写在前面&#xff1a;强烈推荐给大家一个优秀的人工智能学习网站&#xff0c;内容包括人工智能基础、机器学习、深度学习神经网络等&#xff0c;详细介绍各部分概念及实战教程&#xff0c;通俗易懂&#xff0c;非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。…

推荐系统算法--ItemCF--MF(ALS)--FF

1.ItemCF&#xff1a; 协同过滤是什么&#xff1f; 协同过滤 (Collaborative filtering)&#xff0c;指的是&#xff0c;通过收集群体用户的偏好信息&#xff0c;自动化预测&#xff08;过滤&#xff09;个体用户可能感兴趣的内容。协同&#xff08;collaborating&#xff09…

Git merge时使用--no-ff参数

/1、Git&#xff1a;Git-merge的–ff和–no-ff。 前言 Git merge最容易糊涂的地方就是这个--ff参数和--no-ff 参数&#xff0c;通过本文&#xff0c;把这个整理清楚。 其实官网讲的非常清楚&#xff0c;不过可能因为是英文的&#xff0c;所以大家阅读起来会有一些障碍。&…

如何清除弹窗FF新推荐

前言&#xff1a;一个星期日的下午&#xff0c;我打算过肥宅的生活&#xff0c;吃的东西已经就位&#xff0c;当我打开电脑后跳出了这个玩意&#xff0c;瞬间好心情全无。身为程序员&#xff0c;感觉受到了侮辱。 一 Adobe Flash简介 查看任务管理器查看详细信息如下&#xf…

ff新推荐弹窗怎么彻底删除---解决方案

根源&#xff1a;几乎所有的电脑中都会安装Flash Player&#xff0c;而FF新推荐弹窗就是Flash Player的&#xff0c;那么Win7、Win10系统FF新推荐怎么卸载&#xff1f; 方法一&#xff1a;直接删除FF新推荐 1、如果FF新推荐弹出之后&#xff0c;先不要关闭掉&#xff0c;使用键…

彻底关闭弹出广告“FF新推荐”

很多小伙伴们都发现&#xff0c;近一段时间&#xff0c;自己的电脑中时常会弹出一个叫“FF新推荐”的广告弹窗&#xff0c;扰民不说显示的内容也很猥亵。一检查发现居然是Flash中国官方干的&#xff0c;安装了flash播放器后就弹出广告。就像下面这样的&#xff1a; 1. FF新推荐…

Java课程设计

学生考勤管理系统 文章目录 学生考勤管理系统一、 前言1、设计背景2、系统设计的目的及意义3、 调查用户需求 二、 系统简介三、 功能介绍1、服务器启动2、登陆3、学生端4、 老师端 四、 系统调试实现1、老师端2、学生端 五、 总结 一、 前言 1、设计背景 随着社会的发展&…

软件测试学习路线

软件测试学习路线图 随着互联网IT产业的蓬勃发展,软件测试的行业也日趋火热,更多人的转向了软件测试行业,当然更多的问题也亟待解决,比如软件测试自学教程视频内容?软件测试视频教程?软件测试培训入门教程?软件测试培训学习思路?鉴此千锋教育不惜教育成本,全面推出软…