GET 和 POST
## onion.ajax.get / onion.ajax.post
### 1. 功能
发送基本的 get / post 请求
### 2. 使用场景
与后端进行数据交互时

### 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();
```