以上代码为 前端同事遗留代码分享,我一般都是用 ajax,第一次看见这么写的。
系统后台定义的返回报文
前端请求后台接口后,后台返回的固定格式:
{
"code":"200",
"msg":"返回消息",
"data":"返回数据"
}
前端自定义js 请求封装util工具
const utils = {
dopost: function (path, pramas, callback) {
var xmlhttp = XMLHttpRequest
? new XMLHttpRequest()
: new ActiveXObject("Microsoft.XMLHTTP");
var onXmlhttpStateChange = function () {
if (xmlhttp.readyState === 4) utils.onGetResponse(xmlhttp, callback);
};
xmlhttp.open("POST", path, true);
xmlhttp.setRequestHeader("content-type", "application/json");
xmlhttp.send(JSON.stringify(pramas));
xmlhttp.onreadystatechange = onXmlhttpStateChange;
},
doget: function (path, callback) {
var xmlhttp = XMLHttpRequest
? new XMLHttpRequest()
: new ActiveXObject("Microsoft.XMLHTTP");
var onXmlhttpStateChange = function () {
if (xmlhttp.readyState === 4) utils.onGetResponse(xmlhttp, callback);
};
xmlhttp.open("GET", path, true);
xmlhttp.send();
xmlhttp.onreadystatechange = onXmlhttpStateChange;
},
checkJsonResponse: function (res, callback) {
if (res.code === "500" || res.code === 500) {
utils.message("错误:" + res.msg || "服務器異常!");
} else {
callback(res);
}
},
onHttpSuccess: function (response, callback) {
var res = {};
var isJson = 1;
var handler = [utils.checkJsonResponse];
try {
res = JSON.parse(response);
} catch (e) {
isJson = 0;
}
handler[isJson](res, callback);
},
onGetResponse: function (xmlhttp, callback) {
if (xmlhttp.status === 200) {
utils.onHttpSuccess(xmlhttp.response, callback);
} else {
utils.message("错误:" + xmlhttp.response);
}
},
message: function (str) {
window.alert(str);
},
};