59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
/**
|
||
* ajax代码的封装
|
||
* @param {*} params
|
||
*/
|
||
function ajax(params) {
|
||
return new Promise(function (resolve, reject) {
|
||
// 显示加载进度条
|
||
Tips.loading()
|
||
// 拿出电话(创建一个新的ajax对象)
|
||
var ajax = new XMLHttpRequest();
|
||
ajax.timeout = 10000
|
||
// 如果是GET请求特殊处理一下参数
|
||
if (params.methods == "GET") {
|
||
var par = ""
|
||
for (const key in params.data) {
|
||
par += `&${key}=${params.data[key]}`
|
||
}
|
||
params.url = params.url + "?" + par.substr(1)
|
||
}
|
||
|
||
// 设置电话号码
|
||
// 是否异步
|
||
ajax.open(params.methods, Config.BaseUrl + params.url, true)
|
||
|
||
// 如果是post请求,那么设置一下post请求的参数用何种数据格式给后端
|
||
// json格式
|
||
if (params.methods == "POST") {
|
||
ajax.setRequestHeader('Content-Type', 'application/json;charset=utf-8')
|
||
}
|
||
|
||
// 拨号
|
||
if (params.methods == "POST") {
|
||
ajax.send(JSON.stringify(params.data));
|
||
} else {
|
||
ajax.send()
|
||
}
|
||
|
||
// 监听网络状态,只有网络请求成功的时候才渲染页面,否则显示错误信息
|
||
ajax.onreadystatechange = function () {
|
||
if (ajax.readyState == 4) {
|
||
if (ajax.status == 200) {
|
||
var data = JSON.parse(ajax.responseText);
|
||
if (data.status == 200 || data.code == 200) {
|
||
// 关闭进度条
|
||
Tips.close()
|
||
resolve(data.result || data)
|
||
} else {
|
||
Tips.toast(data.msg || data.error)
|
||
throw new Error(data.msg || data.error);
|
||
}
|
||
} else {
|
||
Tips.toast("网络故障,稍后再试..")
|
||
// reject("数据请求失败,稍后再试")
|
||
}
|
||
}
|
||
}
|
||
|
||
})
|
||
} |