对ajax简单的封装
demo:
// type: 请求方式
// url: 请求的 URL 地址
// data: 请求的数据参数
// fn: 响应接收完毕触发的函数
function ajax(type,url,data,fn) {
//创建 XMLHttpRequest对象
var xhr = new XMLHttpRequest()
//将请求方式转换为大写,方便后面的判断
type = type.toUpperCase()
//判断请求数据参数类型是否为对象
if(typeof data === 'object') {
var ary = []
for(var key in data) {
ary.push(key + '=' + data[key])
}
data = ary.join('&') //将请求参数转换为以&连接的字符串
}
//判断请求方式,如果为GET,将请求参数拼接到url中
if(type === 'GET') {
url = url + '?' + data;
}
//打开要发送请求的地址
xhr.open(type,url)
//定义send中的参数为空
var datas = null
//判断请求方式,如果为POST,设置请求头,将send中的参数设置为请求参数
if(type === 'POST') {
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
datas = data
}
//发送请求
xhr.send(datas)
//监听请求状态,接收响应数据,执行响应接收完毕触发的函数
xhr.onload = function() {
fn(this.response)
}
}
使用:
//GET请求
ajax('get','https://me.csdn.net/weixin_45426836',{
age: 111,
name: 222
},function (result) {
console.log(result)
})
//POST请求
ajax('post','https://me.csdn.net/weixin_45426836',{
age: 333,
name: 444
},function (result) {
console.log(result)
})
原文始发于微信公众号(前端24):对ajax简单的封装
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/216994.html