一直维护公司前端框架,ajax经常用到,为了提高用户友好程度,每个ajax请求前都加代码太难维护了。所以有了下面的代码
function ajax(opts) {
var defaults = {
type: 'GET',
url: '',
data: '',
async: true,
cache: true,
contentType: 'application/x-www-form-urlencoded',
success: function () {
},
error: function () {
}
};
for (var key in opts) {
defaults[key] = opts[key];
}
if (typeof defaults.data === 'object') {
var str = '';
for (var key in defaults.data) {
str += key + '=' + defaults.data[key] + '&';
}
defaults.data = str.substring(0, str.length - 1);
}
defaults.type = defaults.type.toUpperCase();
defaults.cache = defaults.cache ? '' : '&' + new Date().getTime();
if (defaults.type === 'GET' && (defaults.data || defaults.cache)) defaults.url += '?' + defaults.data + defaults.cache;
var oXhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
oXhr.open(defaults.type, defaults.url, defaults.async);
if (defaults.type === 'GET')
oXhr.send(null);
else {
oXhr.setRequestHeader("Content-type", defaults.contentType);
oXhr.send(defaults.data);
}
oXhr.onreadystatechange = function () {
if (oXhr.readyState === 4) {
if (oXhr.status === 200)
defaults.success.call(oXhr, oXhr.responseText);
else {
defaults.error();
}
}
};
}
我必须走出这漫漫黑暗的夜.