您的位置:首页 > 其它

封装原生ajax

2017-11-20 14:42 330 查看

将原生ajax进行封装

function ajax() {
var ajaxData = {
type: arguments[0].type || "GET",
url: arguments[0].url || "",
async: arguments[0].async || "true",
data: arguments[0].data || null,
dataType: arguments[0].dataType || "text",
contentType: arguments[0].contentType || "application/x-www-form-urlencoded",
beforeSend: arguments[0].beforeSend || function() {},
success: arguments[0].success || function() {},
error: arguments[0].error || function() {}
}
ajaxData.beforeSend()
var xhr = createxmlHttpRequest();
xhr.responseType = ajaxData.dataType;
xhr.open(ajaxData.type, ajaxData.url, ajaxData.async);
xhr.setRequestHeader("Content-Type", ajaxData.contentType);
xhr.send(convertData(ajaxData.data));
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
if(xhr.status == 200) {
ajaxData.success(xhr.response)
} else {
ajaxData.error()
}
}
}
}

function createxmlHttpRequest() {
if(window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else if(window.XMLHttpRequest) {
return new XMLHttpRequest();
}
}

function convertData(data) {
if(typeof data === 'object') {
var convertResult = "";
for(var c in data) {
convertResult += c + "=" + data[c] + "&";
}
convertResult = convertResult.substring(0, convertResult.length - 1)
return convertResult;
} else {
return data;
}
}


ajax实现,写起来和jQuery差不多

ajax({
type: "POST",
url: "http://share.vr39.com/rest/link/importUserPanoramData",
dataType: "json",
data: {
"viewUuid": data
},
beforeSend: function() {
//some js code
},
success: function(msg) {
alert(msg.message)
},
error: function() {
alert("error")
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: