/** 请求 * @Author: xuhong * @Date: 2020/6/19 * @DESC: //TODO */ /** * 发送请求,处理请求失败 * * request(url, method, data, callback) * request(url, method, callback) * request(url, callback) * * @param url * @param method 默认get * @param data * @param callback - 需要一个参数接收返回的数据 */ function request(url, method=‘get‘, data, callback) { if (typeof data == ‘function‘) { callback = data; data = ‘‘; } if (typeof method == ‘function‘) { callback = method; method = ‘get‘; } $.ajax({ type: method, url: url, data: data, traditional: true, // 防止深度序列化,保证数据结构不乱(如数组) success(res) { if (res.code == 200) { !callback || callback(res.data); } else { alert(res.message); } }, error(res) { console.log(‘请求失败,请稍后再试‘); window.location.open(‘error.html‘, ‘_self‘); } }); } /** * 文件上传 * @param url 地址 * @param formData 表单数据,文件数据写入里面 * @param callback 回调函数 * * 例: * const formData = new FormData(); * formData.append(‘file‘, file); */ function uploadFile(url, formData, callback) { $.ajax({ url: url, type: ‘post‘, data: formData, // 以下三个属性是为了防止ajax对数据的处理 cache: false, // 禁止读取缓存中的结构 contentType: false, // 数据编码格式不使用jquery的方式 processData: false, // 默认情况下,前后端传递的数据都会自动转换成字符串,这里表示不对数据进行转换 success(res) { if (res.code == 200) { !callback || callback(res.data); } else { alert(res.message); } }, error(res) { console.log(‘请求失败,请稍后再试‘); window.location.open(‘error.html‘, ‘_self‘); } }); } /** * 对象转地址参数 * @param data 需要转换的对象 */ function toParam(data) { let rel = ‘‘; for (let key in data) { rel += ‘&‘ + key + ‘=‘ + data[key]; } return rel.replace(/^&/, ‘?‘); } /** * 地址参数转对象 * @param data 地址参数 */ function paramParse(data) { data = decodeURI(data); let rel = {}; data = data.replace(/\?/, ‘‘); data.split(‘&‘).map(value => { let p = value.split(‘=‘); rel[p[0]] = p[1]; }); return rel; }