// 实例化,配置请求信息,发送请求,设置回调函数
// 分析:
// 期望:ajax(method,url,data,success)
/**
* ajax封装
* @param {*} method get/post
* @param {*} url 请求资源路径
* @param {*} data 请求参数
* @param {*} success 回调函数
*/
function ajax(method, url, data, success) {
// 1.实例化对象
var xhr = null; // 实例化一个对象,初始值为空 new XMLHttpRequest();
if (window.ActiveXObject) { //IE5IE6是以ActiveXObject的方式引入XMLHttpRequest
xhr = new ActiveXObject('Microsoft.XMLHTTP');
} else if (window.XMLHttpRequest) { //除IE5 IE6以外的浏览器XMLHttpRequest
xhr = new XMLHttpRequest(); //实例化一个XMLHttpRequest
}
// 2.配置信息 open()
if (method == 'GET' && data) { //判断data存在并且是GET方式
url += '?' + data;
}
xhr.open(method, url, true);
// 3.发送请求 send(),如果是POST方式,参数写在括号里
if (method == 'GET') {
xhr.send();
} else if (method == 'POST') {
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
xhr.send(data);
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
// 如果回调函数不为空,就执行这个回调函数,该函数有一个参数xhr.responseText就是返回的内容
success && success(xhr.responseText);
}
}
}
}
封装ajax
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- //创建函数,需传入的参数:请求方式,请求接口地址,请求参数,请求成功回调函数,请求失败回调函数 function...
- 一直在用jQuery方法来写ajax请求,用的多了,不免对这其中是怎么实现的产生了兴趣,于是乎,小弟闲来无聊研究了...