function paramsSeralize(obj){
if(!obj || typeof !== 'object') return obj;
let res = '';
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
res += `&${key}=${obj[key]}`
}
}
result = result.substring(1);
return result;
}
function ajax (options) {
let params = Object.assign({
method: 'GET',
url: '',
data: null,
params: null
}, options)
let isGet = /^(GET|OPTIONS|HEAD|DELETE)$/i.test(options.method) options.params ? options.params = paramsSeralize(options.params) : null; options.data ? options.data = paramsSeralize(options.data) : null; if(isGet && options.params){
options.url += `${options.url.indexOf('?')>=0 ? '&' : '?'}${options.params}`
} let xhr = new XMLHttpRequest;
xhr.open(options.method, options.url) !isGet ? xhr.setRequestHeader('Content-type','x-www-form-urlencoded') : null; xhr.onreadystatechange = function () {
let { readyState, status, responseText } = xhr;
if (/^2\d{2}/.test(status) && readyState === 4) {
responseText = JSON.stringify(responseText)
options.success && options.success()
}
}
xhr.send(isGet ? null : options.data);
}

使用

ajax({
method: 'GET',
url: '/user/list',
data: {
lx: 1,
number: 2
},
params: {
type: 1
},
success (res) { }
})

最新文章

  1. 简记用ArcGIS处理某项目需求中数据的步骤
  2. 几个毫无节操纯属恶搞的JavaScript插件
  3. C语言每日一题之No.2
  4. Java基础知识强化92:日期工具类的编写和测试案例
  5. 包装类和基本类型区别?(integer和int取值范围一样大)
  6. 【NOIP2004】【CJOJ1703】【洛谷1092】虫食算
  7. 安装插件出现eclipse An internal error occurred during: "Installing Software". xxxxxxxxx
  8. openj9
  9. EBS打补丁参考
  10. 4.2Python数据类型(2)之布尔类型
  11. linux 斜杠/
  12. Java代码中获取Json的key值
  13. 10.16JS日记
  14. Swift3 今日(TodayExtension)扩展图文笔记
  15. Java - 线程Join与interrupt
  16. linux 卸载mysql
  17. ASP.NET MVC 4 (二)控制器
  18. Pull to RefreshListView 添加HeaderView
  19. Oracle驱动classes12.jar 与ojdbc14.jar的区别
  20. Vue学习笔记之Vue组件

热门文章

  1. Laravel-手机短信验证码-阿里云
  2. Goland 时间转换的那些事
  3. vue+echarts可视化大屏,全国地图下钻,页面自适应
  4. 对于处理datetime数据类型的一些常用方法:
  5. webug 4.0 打靶笔记-01
  6. LGP5653口胡
  7. CF698C题解
  8. ArcMap操作随记(10)
  9. kubernetes内yaml格式
  10. Java中获取applicationcontext(应用上下文)