封装ajax

function format(obj) {
var temp = [];
for (var key in obj) {
temp.push(key + "=" + obj[key]);
}
return temp.join("&");
}

function extend() {
for (var i = 0; i < arguments.length; i++) {
for (var key in arguments[i]) {
arguments[0][key] = arguments[i][key];
}
}
return arguments[0];
}

function ajax(opt) {
var def = {
async: true,
method: 'get',
data: null,
success: function() {}
}
var settings = extend({}, def, opt);
var data = typeof settings.data == 'object' ? format(settings.data) : settings.data;
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
if (settings.method == 'get') {
xhr.open(settings.method, settings.url + "?" + data, settings.async);
xhr.send();
} else if (settings.method == 'post') {
xhr.open(settings.method, settings.url, settings.async);
xhr.setRequestHeader('Centent-Type', "application/x-www-form-urlencoded,charset-utf-8");
xhr.send(data);
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var obj = JSON.parse(xhr.responseText);
settings.success(obj);
}
}
}
}

posted @ 2018-06-22 23:29  maps..xy  阅读(75)  评论(0编辑  收藏  举报