原生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 相关文章推荐
大家未必知道的Js技巧收藏
Apr 07 Javascript
js 页面输出值
Nov 30 Javascript
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
Extjs学习笔记之四 工具栏和菜单
Jan 07 Javascript
使用Java实现简单的server/client回显功能的方法介绍
May 03 Javascript
jquery购物车实时结算特效实现思路
Sep 23 Javascript
jQuery插件 selectToSelect使用方法
Oct 02 Javascript
Node.js中的模块机制学习笔记
Nov 04 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
vue组件横向树实现代码
Aug 02 Javascript
微信小程序swiper左右扩展各显示一半代码实例
Dec 05 Javascript
js实现带箭头的进度流程
Mar 26 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
php 各种应用乱码问题的解决方法
2010/05/09 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
php封装一个异常的处理类
2017/06/08 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
Python Requests安装与简单运用
2016/04/07 Python
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
优秀辅导员事迹材料
2014/02/16 职场文书
植树节标语
2014/06/27 职场文书
个人股份转让协议书范本
2014/10/26 职场文书
师德承诺书
2015/01/20 职场文书
施工安全保证书
2015/05/09 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
务工证明怎么写
2015/06/18 职场文书
班主任培训研修日志
2015/11/13 职场文书
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技