/**
* 原生 ajax工具类
* @author cls
* @date 2021-01-30
*/
export const AjaxUtil = {
get: function (option, callback) {
// XMLHttpRequest对象用于在后台与服务器交换数据
var me = this;
var xhr = new XMLHttpRequest();
xhr.open("GET", option.url, false);
xhr.onreadystatechange = function () {
me._onReadyStateChange(xhr, option, callback)
};
xhr.send();
},
// data应为'a=a1&b=b1'这种字符串格式,在jq里如果data为对象会自动将对象转成这种字符串格式
post: function (option, callback) {
var me = this;
var xhr = new XMLHttpRequest();
let async = (option.async == undefined ? true : option.async);
option.contentType = option.contentType || "application/json"; //"application/x-www-form-urlencoded"
xhr.open("POST", option.url, async);
// 添加http头,发送信息至服务器时内容编码类型
xhr.setRequestHeader("Content-Type", option.contentType);
// "3d3fe30c-3d99-41e8-9aea-addd8528aa07"
xhr.setRequestHeader("Authorization", "bearer " + "b9e6a365-c551-4551-b258-c56e3acd0eed");
xhr.onreadystatechange = function () {
me._onReadyStateChange(xhr, option, callback)
};
if (option.contentType == "application/json") {
if (option.data) {
xhr.send(JSON.stringify(option.data));
} else {
xhr.send();
}
return JSON.parse(xhr.responseText);
} else {
xhr.send(option.data);
return xhr.responseText;
}
},
// 监听请求状态变化
_onReadyStateChange(xhr, option, callback) {
if (xhr.readyState == 4) {
if (xhr.status == 200 || xhr.status == 304) {
try {
callback && callback(JSON.parse(xhr.responseText));
} catch (err) {
callback && callback(xhr.responseText);
}
}
}
}
};