/** * 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("数据请求失败,稍后再试") } } } }) }