封装复杂的ajax请求
封装复杂的 ajax 请求
ajax 传参为对象的格式,方便之后进行数据处理
注意数据格式的处理
get 和 post 的处理方式不同,参数也不同
function ajax(obj){
if(window.XMLHttpRequest{
var xhr = new XMLHttpRequest();
}else{
var xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
// 数据的形式通常是key1=val1&key2=val2
// 但是实际在开发的时候数据的通常表示形式是{key1:val1,key2:val2}
var str = '';
for(var i in obj.data){
str += i + '=' + obj.data[i] + '&';
}
str = str.replace(/&$/,'');
if(obj.type.toLowerCase() == "get"){
xhr.open("GET",obj.url+"?"+str,true);
xhr.send();
}
if(obj.type.toLowerCase() == "post"){
xhr.open("post",obj.url,true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(str);
}
xhr.onreadystatechane = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var data = xhr.responseText;
obj.fn(data);
}
}
}
}
发表评论 (审核通过后显示评论):