原生js 封装get ,post, delete 请求的实例


Posted in Javascript onAugust 11, 2017

现在的项目中都在用VUE 以及react 等MVC, MVVM  框架。 丢弃了原始的JQ 。不可能为了个$.ajax();而把JQ引进来吧。

在vue1的开发中 提供了 vueResouce, vue2 出来后明确提出了不在更新vueResouce 而提供axios 的方法。

在react 的开发中提供fetch 封装的方法。等等。但在工作与后台的交互中基本都是form表单的形式。于是自己封装了个

POST,GET,DELETE 的请求方式。当然根据不同的公司,不同的方式。都可以自己扩展。目前这个只是针对自己所在公司而已。

function api(url,opt,methods) {
      return new Promise(function(resove,reject){
        methods = methods || 'POST';
        var xmlHttp = null;
        if (XMLHttpRequest) {
          xmlHttp = new XMLHttpRequest();
        } else {
          xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        };
        var params = [];
        for (var key in opt){
          if(!!opt[key] || opt[key] === 0){
            params.push(key + '=' + opt[key]);
          }
        };
        var postData = params.join('&');
        if (methods.toUpperCase() === 'POST') {
          xmlHttp.open('POST', url, true);
          xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
          xmlHttp.send(postData);
        }else if (methods.toUpperCase() === 'GET') {
          xmlHttp.open('GET', url + '?' + postData, true);
          xmlHttp.send(null);
        }else if(methods.toUpperCase() === 'DELETE'){
          xmlHttp.open('DELETE', url + '?' + postData, true);
          xmlHttp.send(null);
        }
        xmlHttp.onreadystatechange = function () {
          if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
            resove(JSON.parse(xmlHttp.responseText));
          }
        };
      });
    }
    export default api;

以上这篇原生js 封装get ,post, delete 请求的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
无语,javascript居然支持中文(unicode)编程!
Apr 12 Javascript
javascript RadioButtonList获取选中值
Apr 09 Javascript
JavaScript如何从listbox里同时删除多个项目
Oct 12 Javascript
jquery京东商城双11焦点图多图广告特效代码分享
Sep 06 Javascript
基于Jquery代码实现手风琴菜单
Nov 19 Javascript
js实现浏览器倒计时跳转页面效果
Aug 12 Javascript
vue双向绑定的简单实现
Dec 22 Javascript
微信小程序 常用工具类详解及实例
Feb 15 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
vue调用语音播放的方法
Sep 27 Javascript
微信小程序一周时间表功能实现
Oct 17 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 #Javascript
JS非空验证及邮箱验证的实例
Aug 11 #Javascript
vue如何获取点击事件源的方法
Aug 10 #Javascript
Vue单文件组件基础模板小结
Aug 10 #Javascript
基于JavaScript实现淘宝商品广告效果
Aug 10 #Javascript
Vue数组更新及过滤排序功能
Aug 10 #Javascript
Webpack性能优化 DLL 用法详解
Aug 10 #Javascript
You might like
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
PHP中生成UUID自定义函数分享
2015/06/10 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
PHP crc32()函数讲解
2019/02/14 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
javascript实现简单的贪吃蛇游戏
2015/03/31 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
python xml解析实例详解
2016/11/14 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
详解python中的异常捕获
2020/12/15 Python
外企办公室竞聘演讲稿
2013/12/29 职场文书
安全月活动总结
2014/05/05 职场文书
我的中国梦主题教育活动总结
2015/05/07 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
母亲节主题班会
2015/08/14 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
基于CSS3画一个iPhone
2021/04/21 HTML / CSS
vue3中provide && inject的使用
2021/07/01 Vue.js