GET 和 POST

## onion.ajax.get / onion.ajax.post ### 1. 功能 发送基本的 get / post 请求 ### 2. 使用场景 与后端进行数据交互时 ![image.png](https://cos.easydoc.net/27100029/files/kbkjuhur.png) ### 3. 如何使用 #### 3.1 GET 请求 ```js onion.ajax.get(url, function (res) { if (res.code == onion.networkState.SUCC) { // 成功操作 } else { onion.layer.tipMsg(res.msg) } }) ``` #### 3.2 POST请求 ```js onion.ajax.post(url, submitData, function (res) { if (res.code == onion.networkState.SUCC) { // 成功操作 } else { onion.layer.tipMsg(res.msg) } }) ``` #### 3.3 onion.networkState 后端会返回的状态码, 公共方法中有对应定义 ```js var networkCode = { 'SUCC': 10000, // 成功 'SYSTEMERR': 10001, // 系统异常 'NOTAUTH': 401, // 没有权限 'ERROR': 500 // 网络错误 } onion.networkState = networkCode; ``` ### 4. api定义 ``` javascript * @desc GET 请求方式 * * @params [string] url * @params [object] 数据 * @params [function] 回调 * * */ MyAjax.prototype.get = function (url, data, callback, headData) { url = onionUrl + url; if (!onion.help.isFunction(data)) { if (onion.help.isObject(data)) { var str = ''; for (var key in data) { var temp = key + '=' + data[key]; str += temp + '&'; } str = str.substr(0, str.length - 1); url += '?' + str; } } else { var callback = data; } $.ajax({ type: 'GET', url: url, cache: true, dataType: 'json', beforeSend: function (request) { if (!headData) return; for (var key in headData) { request.setRequestHeader(key, JSON.stringify(headData[key])); } }, success: function (res) { onion.log.setLog(url, res); if (res.code == onion.networkState.NOTAUTH) { // 没有权限,应该退出登录 onion.leave(); return; } callback && callback(res); }, error: function (err) { callback && callback(err); } }) }; /** * @desc POST * * @params url [string] * @params data [object] * @params callback [function] 回调 * * */ MyAjax.prototype.post = function (url, data, callback, status) { var url = onionUrl + url; if (onion.help.isObject(data) || onion.help.isArray(data)) { var data = JSON.stringify(data); } else if (onion.help.isFormData(data)) { var data = data; } else { callback = data; var data = JSON.stringify({}) } $.ajax({ type: 'POST', url: url, data: data, async: !status || status, dataType: 'json', contentType: "application/json", success: function (res) { onion.log.setLog(url, res); if (res.code == onion.networkState.NOTAUTH) { // 没有权限,应该退出登录 onion.leave(); return; } callback && callback(res); }, error: function (err) { callback && callback(err); } }) } // 用于表单formData的提交 /** * * eg: onion.ajax.minPost('onio') * * 备注:用于处理 通过FormData上传数据的方式 * * */ // 上传文件 MyAjax.prototype.minPost = function (url, data, callback, headData, status) { var url = onionUrl + url; if (onion.help.isObject(data) || onion.help.isArray(data)) { var data = JSON.stringify(data); } else if (onion.help.isFormData(data)) { var data = data; } else { callback = data; var data = JSON.stringify({}) } $.ajax({ type: 'POST', url: url, data: data, dataType: 'json', async: !status || status, processData: false, beforeSend: function (request) { if (!headData) return; for (var key in headData) { request.setRequestHeader(key, JSON.stringify(headData[key])); } }, contentType: false, success: function (res) { if (res.code == onion.networkState.NOTAUTH) { // 没有权限,应该退出登录 onion.leave(); return; } callback && callback(res); }, error: function (err) { //console.log(err); callback && callback(err); } }) } onion.ajax = new MyAjax(); ```