原生ajax的get和post方法封装
原生ajax的get和post方法封装:https://www.cnblogs.com/qiuxiaozhen/p/10568314.html
get 方法
function serialize (data) { if (!data) { return ''; } var paris = []; for (var key in data) { if (!data.hasOwnProperty(key) || typeof data[key] === 'function') { continue; } var name = encodeURIComponent(key); var value = encodeURIComponent(data[key].toString()); paris.push(name + '=' + value); } return paris.join('&'); } function get (url, options, callback) { var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { // 兼容IE7及以下版本 req = new ActiveXObject(); } req.onreadystatechange = function () { if (req.readyState === 4) { if (req.status === 200) { console.log('请求成功'); callback(req.response); } } else { console.log('请求中...'); } } // 将传递的参数序列化 if (serialize(options) !== '') { url = url + '?' + serialize(options); } req.open('get', url); req.send(null); }
post方法
function serialize (data) { if (!data) { return ''; } var paris = []; for (var key in data) { if (!data.hasOwnProperty(key) || typeof data[key] === 'function') { continue; } var name = encodeURIComponent(key); var value = encodeURIComponent(data[key].toString()); paris.push(name + '=' + value); } return paris.join('&'); } function post (url, options, callback) { var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { // 兼容IE7及以下版本 req = new ActiveXObject(); } req.onreadystatechange = function () { if (req.readyState === 4) { if (req.status === 200) { console.log('请求成功'); callback(req.response); } } else { console.log('请求中...'); } } req.open('post', url); req.send(serialize(options)); }
get与post方法结合
function serialize (data) { if (!data) { return ''; } var paris = []; for (var key in data) { if (!data.hasOwnProperty(key) || typeof data[key] === 'function') { continue; } var name = encodeURIComponent(key); var value = encodeURIComponent(data[key].toString()); paris.push(name + '=' + value); } return paris.join('&'); } function request (method, url, options, callback) { var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { // 兼容IE7及以下版本 req = new ActiveXObject(); } req.onreadystatechange = function () { if (req.readyState === 4) { if (req.status === 200) { console.log('请求成功'); callback(req.response); } } else { console.log('请求中...'); } } url = method === 'get' && serialize(options) !== '' ? url + '?' + serialize(options) : url; let sendParams = method === 'get' ? null : serialize(options); req.open(method, url); req.send(sendParams); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2017-12-26 锋利的jQuery 要点归纳(一) jQuery选择器
2017-12-26 jQuery选择器和选取方法
2017-12-26 adb logcat 查看日志
2017-12-26 android adb logcat获取日志文件
2017-12-26 用adb logcat抓取log
2017-12-26 怎样用adb抓取log?
2017-12-26 Android使用adb抓完整Log