ajax的原型以及库的封装
原文--
var ajax = new XMLHttpRequest();
ajax.open('get','./01.txt',true);
ajax.send();
ajax.onreadystatechange = function(){
if(ajax.readyState === 4 && ajax.status === 200){
console.log(ajax.responseText);
}
}
库的封装--
function ajax(methods, url, data, callback) {
var xhr = new XMLHttpRequest();
//在封装时考虑不同的传入数据方式即get/post
if (methods.toLowerCase() === 'get') {
url += '?' + data;
xhr.open(methods, url, true);
xhr.send();
} else if (methods.toLowerCase === 'post') {
xhr.open('post', url, true);
xhr.setRequestHeader('contend-type', 'application/x-www-form-urllencode')
xhr.send(data)
}
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
//readyState为监听ajax的状态固定用法:值为4时为解析完成,可以调用
if (xhr.status === 200)
//status则是检测服务器状态的。
{ callback && callback(xhr.responseText) }
else {
throw new Error('请求失败,错误码' + xhr.status)
}
}
}
}
生亦何欢,死亦何苦。。。。。。。。。。。。。。。。。。。。。