tf-web-utils
web开发工具集合
ajax 是基于 axios 及 bluebird 进行二次封装的 XMLHttpRequest 工具类,这里对请求的发送进行了统一参数处理
// 独立 js 文件中使用// data:类get请求的参数 或者类post请求提交的数据,根据实际情况传递const data = name: 'Yantao Lu' age: 29// ops:辅助参数,根据实际情况传递// method 的可选值为 'GET', 'POST', 'DELETE', 'HEAD', 'PUT' 或 'PATCH'// type 的可选值为 'formData' 或 'json',针对 'POST', 'PUT', 或 'PATCH' 请求,默认以表单数据提交,当需要以json格式提交时传值 'json' 即可// cache 针对 get 请求,设置是否需要缓存,默认不缓存,每次重新请求// loading 设置是否显示加载状态,默认不显示// 其他 axios 参数全部支持const ops = method: 'GET' type: 'formData' cache: false loading: false ... // ajax.get('url', data, ops) 返回的是 bluebird 的Promise对象,支持 then、catch 及 finally ajax
- 常用方法
const url = '****'const data = {} // 默认ops为get请求ajax // get 请求ajax// delete 请求ajax// head请求ajax// post请求ajax// 以json格式传参发送post请求ajax// put请求ajax// 以json格式传参发送put请求ajax// patch请求ajax// 以json格式传参发送patch请求ajax// jsonp支持 ops 默认为 {callback: 'callback'},返回Promiseajax
- 并行执行多个请求
ajaxallajax ajax
- 扩展使用 配置、拦截器请参照axios
// 默认配置ajaxdefaultsbaseURL = '/' // 获取axios本身ajaxaxios // 获取自身axios实例ajaxinstance // 创建axios实例const ops = baseUrl: '/'const instance1 = ajax// 等价于const axios = ajaxaxiosconst instance2 = axios // 拦截器// request拦截器,可以统一发送前需要额外传递的参数ajaxinterceptorsrequest// response拦截器,可以对后端返回的数据进行统一解析,例如后端返回的统一实例处理// 可以在项目入口文件中统一处理 { supermsg thiscode = code } ajaxinterceptorsresponse