当前位置: 首页 > wzjs >正文

河南品牌网站建设佛山制作网站公司

河南品牌网站建设,佛山制作网站公司,中企动力邮箱官方网站,阿里云wordpress目录 自封装axios函数封装axios函数实现步骤1. 准备阶段2. 实现无参get请求3.实现有参get请求4. 实现post请求 完整实例代码 自封装axios函数 封装axios函数实现步骤 1. 准备阶段 理解axios函数的底层原理,包括Promise,XMLHttpRequest等概念 XMLHttpRequest工作…

目录

  • 自封装axios函数
  • 封装axios函数实现步骤
      • 1. 准备阶段
      • 2. 实现无参get请求
      • 3.实现有参get请求
      • 4. 实现post请求
  • 完整实例代码

自封装axios函数

封装axios函数实现步骤

1. 准备阶段

理解axios函数的底层原理,包括Promise,XMLHttpRequest等概念

  1. XMLHttpRequest工作过程
    先创建一个XMLHttpRequest实例对象,设置请求方式和url地址,绑定loadend事件,响应.reponse,最后在发送数据。如果请求方式为get,则需要将查询参数写在url网址后,如果请求方式为post,则寻要在发送请求前设置相应头
  2. promise工作
    先创建一个promise实例对象,里面传递resolve,reject两个参数。resolve代表请求成功,调用then;reject代表请求失败,调用catch

自行准备接口

2. 实现无参get请求

利用promise的.then方法,封装axios函数,返回一个promise实例对象,赋予函数.then方法

  1. 如果method为空,则默认为get方法
  2. 判断ajax.status的值,如果访问成功,则用resolve传response,如果访问失败,则用reject抛错误
	function myAxios(obj) {return new Promise((resolve, reject) => {				//确保自定义axios函数可以调用.then和.catch方法const ajax = new XMLHttpRequest()ajax.open(obj.method || 'get', obj.url)				//如果method为空,则为get方法ajax.addEventListener('loadend', (e) => {if(ajax.status>=200&&ajax.status<300){			//判断相应是否成功resolve(ajax.response)}else{reject(new Error(ajax.response))}         })ajax.send()})}

3.实现有参get请求

在配置请求方法前,对params进行判断,如果存在params,则将其转换为查询字符串,并且拼接到url网址后

    	const a = obj.params ? '?'+new URLSearchParams(obj.params) : ''			//转换查询参数ajax.open(obj.method || 'get', `${obj.url}${a}`)						//查询参数拼接

4. 实现post请求

在数据发送前判断data是否存在,如果存在则先设置相应头,在将data数据以JSON字符串的形式发送出去

	if(obj.data){ajax.setRequestHeader('Content-Type', 'application/json')ajax.send(JSON.stringify(obj.data))				//发送的数据为JSON字符串形式}else{ajax.send()}

完整实例代码

<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>封装_简易axios函数_获取省份列表</title>
</head><body><script>function myAxios(obj) {return new Promise((resolve, reject) => {const ajax = new XMLHttpRequest()const a = obj.params ? '?' + new URLSearchParams(obj.params) : ''ajax.open(obj.method || 'get', `${obj.url}${a}`)ajax.addEventListener('loadend', (e) => {if (ajax.status >= 200 && ajax.status < 300) {resolve(ajax.response)} else {reject(new Error(ajax.response))}})if (obj.data) {ajax.setRequestHeader('Content-Type', 'application/json')ajax.send(JSON.stringify(obj.data))}else {ajax.send()}})}myAxios({url: 'http://hmajax.itheima.net/api/register',data: {username: 'baiyuansong',password: '1234567'},method: 'post'}).then(res => {console.dir(res)})</script>
</body></html>

文章转载自:

http://tmOjBVYs.rrwft.cn
http://9vwLSam3.rrwft.cn
http://0Qyy8I65.rrwft.cn
http://eWWBPnoS.rrwft.cn
http://6oIdHG61.rrwft.cn
http://aRTGdsAM.rrwft.cn
http://jk1azDxX.rrwft.cn
http://gum1SInN.rrwft.cn
http://EV3I6YkX.rrwft.cn
http://5nGMP5Tb.rrwft.cn
http://kPUTSaOI.rrwft.cn
http://abpoMrrJ.rrwft.cn
http://0kYRPMIf.rrwft.cn
http://6sduga32.rrwft.cn
http://DFf1QaxN.rrwft.cn
http://b4W4Nava.rrwft.cn
http://ch6daIBg.rrwft.cn
http://lLYUilQm.rrwft.cn
http://3uwIvHpT.rrwft.cn
http://T3ct3651.rrwft.cn
http://6bcb2DEd.rrwft.cn
http://1JbxQiG7.rrwft.cn
http://AzAg5wIP.rrwft.cn
http://oNdx0C4Y.rrwft.cn
http://s0svSH9F.rrwft.cn
http://n5xu2jv8.rrwft.cn
http://cEFneeoh.rrwft.cn
http://ACUQxvSJ.rrwft.cn
http://GuzPN0GJ.rrwft.cn
http://iJaFzyZq.rrwft.cn
http://www.dtcms.com/wzjs/728379.html

相关文章:

  • 甜蜜高端定制网站安庆网站建设电话
  • 做网站需要走公司吗在线设计 网站源码
  • 外贸网站设计与推广vue发布停运公告
  • 网站当前链接软件开发人员外包
  • 微信网站跳转链接怎么做网站 keyword title 字数
  • 杭州网站怎么做seowordpress新建页面不能保存路径
  • 网站建设 模板asp公司企业网站模板源代码
  • php+mysql网站开发教程爱站小工具圣经
  • 招投标网站网络运营需要什么技术
  • 做淘宝团购的网站海外网站seo
  • 个人建设网站论文9款好评不断的网页设计工具
  • 2网站建设公司企业类网站
  • 网站的seo如何优化深圳市住房和建设局红色警示
  • 网站建设高端培训班钱宝做任务的网站怎么下
  • 网站自适应与响应式下载电商平台app
  • 婚纱摄影网络公司网站源码网站做快速排名是怎么做的呢
  • win主机 wordpress 404鹤壁网站建设优化
  • 鄂州网站建设设计手机做网页的软件有哪些
  • 网站举报12321山西省建设厅官网站
  • 烟台网站建设招聘dnf做心悦宠物的网站
  • 刷粉网站推广免费网页设计规范
  • 贵州中英文网站制作个人不动产登记网上查询
  • 专业网站推广的公司php网站建设程序
  • 顺企网南昌网站建设江苏运营网站建设业务
  • 做网站专用图标备案名称网站名称
  • html背景颜色代码百度seo流量
  • 网站建设明细青岛外贸假发网站建设
  • 建设公司需要网站吗大学生网站建设申报书
  • 富顺做网站如何投诉做网站的公司
  • 湖南专业网站建设服务网页开发报价单