~function () {
function ajax(options) {
var _default = {
url: "",//地址
type: "get",//方式
async: true,//同步还是异步
data: null,//放在请求主体的内容
dataType: "json",//请求回来的数据格式
getHead: null,//当readyState===2时需要做的
success: null,//当readyState===4时需要做的
}
for (var key in optionps) {
if (options.hasOwnProperty(key)) {
_default[key] = options[key];
}
}
//如果是get的话需要在url末尾添加随机数清楚缓存
if (_default.type === "get") {
_default.url += _default.url.indexOf("?") > -1 ? "&" : "?";
_default.url += Math.random();
}
var xhr = new XMLHttpRequest;
xhr.open(_default.type, _default.url, _default.async);
xhr.onreadystatechange = function () {
if (/^2\d{2}$/.test(xhr.status)) {
if (xhr.readyState === 2) {
if (typeof _default.getHead == "function") {
_default.getHead.call(xhr);
}
}
if (xhr.readyState === 4) {
var res = xhr.responseText;
if (_default.dataType === "json") {
res = "JSON" in window ? JSON.parse(res) : eval("(" + val + ")");
}
if (typeof _default.success == "function") {
_default.success.call(xhr, res)
}
}
}
}
xhr.send(_default.data);
}
window.ajax = ajax;
}()