ajax对数据进行封装,ajax封装

ajax是什么

ajax是在不用刷新页面的情况下,通过js中的XMLHttpRequest对象,从服务器获取数据,对网页内容进行更新的技术。

封装方法

function ajax(params){

申明一些必要的参数,比如成功后的回调函数、错误处理、url、data、type(http method),并且作兜底处理

const{

success = () => {},

error = () => {},

type = 'get',

data = {},

url = '/'

} = params;

过程

创建异步请求对象

const xhr = new XMLHttpRequest()

注册xhr发送接收请求时的回调,并且在服务器返回结果后,调用success或者error函数

xhr.onreadystatechange=function(){

if(xhr.readyState===4){

if(xhr.state===200){

success(JSON.parse(xhr.responseText))

}else{

error(xhr.state,xhr.responseText)

}

}

}

let sendParams = '';

Object.keys(data).map((key) => {//Object.keys(对象),得到一个由对象里的属性名组成的数组

sendParams += `${key}=${data[key]}&`

});

判断type

如果是get, 参数就挂在url上,(url?sendParams),send空

如果是其他type, 参数就放在send中传递,send(sendParams),但需要在open和send之间先设置请求头信息

if(type==='get'){

xhr.open(type,`${url}?${sendParams}`,true)

xhr.send()

}else{

xhr.open(type,url,true)

xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

xhr.send(sendParams);

}

}

调用实例

ajax({

url: '/code/1',

type: 'POST',

data: {

id: 'id',

name: 'name'

},

success(result) {

// do something

},

error(error1, error2) {

// do something

}

})

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值