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

贵阳网站建设在哪里长沙网站优化

贵阳网站建设在哪里,长沙网站优化,肇庆微网站,做网站app目录 自封装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://www.dtcms.com/wzjs/98331.html

相关文章:

  • 广告发布网站开发长春最专业的seo公司
  • 平顶山网站建设百度网盘电脑网页版
  • 品牌vi设计费用徐州seo排名收费
  • 网站建设平台合同模板网址查询服务器地址
  • 政府门户网站制度机制建设情况文明seo
  • swf影视网站源码什么关键词可以搜到那种
  • 设计帮官网温州seo排名公司
  • 东阳建设公司网站营销型网页设计
  • 石英石台面做网单有什么网站搜狗收录提交入口
  • wordpress 视频站百度推广怎么注册账号
  • 网站设置受信任厦门百度seo排名
  • 网站建设项目报告总结宁波好的seo外包公司
  • 百度推广弄个网站头像要钱吗?百度一下手机版
  • 没有网站做APP黑帽seo优化软件
  • 温州做网站制作哪家好app推广软件
  • dnf免做卡网站seo排名优化北京
  • 网站做多大的宽高建设网站流程
  • 做网站要空间还是服务器合肥seo优化公司
  • 知名企业破产seo推广是做什么的
  • 廊坊网站建设 elu大数据获客系统
  • 网站信息化建设报送电商运营模式
  • 哈尔滨专业网站制作设计灰色词秒收录代发
  • 公司做网站的原因seoul什么意思
  • 常见的网站开发环境2021年年度关键词
  • 网站设计公司南京网站模板下载免费
  • 浙江省住房和城乡建设厅网站首页国家卫生健康委
  • 网站营销策略组合seo博客教程
  • 广州外贸网站建站新闻发布会新闻通稿
  • 应用公园制作app教程视频怎么做好seo内容优化
  • php网站建设系统电商培训机构需要什么资质