AJAX
一个 HTTP 库,底层是 axios 和 XMLHttpRequest,封装的目的是统一管理请求。
1. 如何使用
常见应用方式
// 于业务代码中截取的代码段getDefaultValues() {let defaultValues = {};ajax({url: '/nccloud/price/adjustprice/quickdefaultvalue.do',data: {pk_org: this.props.form.getFormItemsValue(ADJUSTPRICE_CONST.formId, 'pk_org').value,pk_tariffdef: this.props.form.getFormItemsValue(ADJUSTPRICE_CONST.formId, 'pk_tariffdef').value},async: false,success: (res) => {let { success, data } = res;if (success) {defaultValues = data;}}});return defaultValues;}
3. API
ajax({
url,
method,
data,
async,
loading,
print,
success,
error,
params,
from,
mode,
headers,
delayTime,
windowContainer,
loadingContainer,
toastContainer,
sysParameter,
requestJSON
});
3.1 config
config 的 参数说明
| 参数 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| url | 于请求的服务器 URL | String | ‘/‘ | 必填 |
| method | 创建请求时使用的方法 | String | ‘post’ | |
| data | 作为请求主体被发送的数据 | {} | ||
| async | 是否异步 | Boolean | true | |
| loading | 是否遮罩 | Boolean | true | |
| 是否打印接口 | Boolean | false | ||
| success | 请求成功回调 | Function | 见下一章节 | |
| error | 请求报错回调 | Function | 见下一章节 | |
| params | 与请求一起发送的 URL 参数 | Object | {} | 必须是无格式对象(plain object)或 URLSearchParams 对象 |
| from | 系统参数 | String | ‘’ | |
| mode | 系统参数 | String | ‘’ | |
| headers | 即将被发送的自定义请求头 | Object | { ‘Content-Type’: ‘application/json;charset=UTF-8’ } | |
| delayTime | loading 最低时长 | 1000 | ||
| windowContainer | 容器 | Object | window | |
| loadingContainer | loading 容器 | DOM \ ReactComponent \ ReactDOM | DOM[div] | |
| sysParameter | 系统参数,会被合并到data | Object | ||
| requestJSON | false | 丢弃 |
3.2 error & success
success 默认方法
function (res) { console.log(res); }
error 默认方法
function (res, url) { console.error(res); let msgContent = JSON.stringify(res.message); toast({ color: ‘danger’, content: msgContent, container: toastContainer, mark: msgContent + url }); }
4. 注意事项
通常情况下,不建议混合使用其他 HTTP 库,会产生版本升级不同步问题
