首页 / JAVASCRIPT / 原生js ajax 封装
原生js ajax 封装
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了原生js ajax 封装,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1935字,纯文字阅读大概需要3分钟。
内容图文
首先我们先了解ajax的get和post请求分别是怎样请求数据的
get请求
let ajx = new XMLHttpRequest() //创建ajax实例/*打开需要请求的地址,可以有三个参数 参1:请求方式 参2:请求地址 参3:是否异步,可选,默认异步 */ ajx.open(‘get‘,‘http://localhost/day02/api/gouwu.php?name=zhangsan‘) ajx.send()//向后端发送的数据,get方式用不到 ajx.onreadystatechange = ()=>{//监听状态if(ajx.readyState==4){//判断就绪码,4为成功if(ajx.status==200){//判断状态码,200表示成功 console.log(ajx.responseText) //打印请求的内容 } } }
post请求
let ajx = new XMLHttpRequest() //创建ajax实例// /*打开需要请求的地址,可以有三个参数// 参1:请求方式// 参2:请求地址// 参3:是否异步,可选,默认异步// */ ajx.open(‘post‘,‘http://localhost/day02/api/gouwu.php‘) ajx.setRequestHeader(‘content-type‘,‘application/x-www-form-urlencoded‘)//设置请求头 ajx.send(‘name=zhangsan‘)//向后端发送的数据,get方式用不到 ajx.onreadystatechange = ()=>{//监听状态if(ajx.readyState==4){//判断就绪码,4为成功if(ajx.status==200){//判断状态码,200表示成功 console.log(ajx.responseText) //打印请求的内容 } } }
很麻烦吧,请求个数据我们需要写这么多,那么我们把它封装成get、post请求都可以使用的方法
首先先想好我们需要调用的方式,这里我封装的调用方式是这样的
ajax({ //调用封装的方法 type: ‘get‘, //可以不写,默认get url: ‘http://localhost/day02/api/gouwu.php‘, //请求地址 data: { //需要传输的数据,可选 name: ‘zhangsan‘, age: 18 } },a=>{//处理的到的数据 console.log(a) })
然后根据上面的调用方法进行封装
function ajax(obj, fn) { let ajx = new XMLHttpRequest() //创建ajax实例 obj.type = obj.type ? obj.type : ‘get‘ //判断type存不存在,不存在默认等于get let data = null//向后端发送的数据if (obj.data) { //判断是否存在for (let i in obj.data) { data += i + ‘=‘ + obj.data[i] + ‘&‘ //键值拼接成name=zhagnsan&age=18形式 } } if (obj.type == ‘get‘) { //处理get请求发送数据 ajx.open(obj.type, obj.url + ‘?‘ + data) //地址上拼接数据 ajx.send() } elseif (obj.type == ‘post‘) { //处理post请求发送数据 ajx.open(obj.type, obj.url) ajx.setRequestHeader(‘content-type‘, ‘application/x-www-form-urlencoded‘) //设置请求头 ajx.send(data) //发送数据 } ajx.onreadystatechange = () => { if (ajx.readyState == 4) { if (ajx.status == 200) { /* 将得到的数据传给回调函数 短路写法,如果不传fn为空不会执行,有值就执行 */ fn&&fn(ajx.responseText) } } } }
这样我们就封装好了,以后使用也就变得方便了
原文:https://www.cnblogs.com/zlf1914/p/13045821.html
内容总结
以上是互联网集市为您收集整理的原生js ajax 封装全部内容,希望文章能够帮你解决原生js ajax 封装所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。