原生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 相关文章推荐
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 Javascript
jQuery学习笔记之jQuery中的$
Jan 19 Javascript
JS实现的网页背景闪电闪烁效果代码
Oct 17 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
Apr 25 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
Vue AST源码解析第一篇
Jul 19 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
Dec 15 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
在Create React App中使用CSS Modules的方法示例
Jan 15 Javascript
js实现盒子拖拽动画效果
Aug 09 Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 Javascript
JavaScript中reduce()的用法
May 11 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在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
2015/03/11 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
vue组件 $children,$refs,$parent的使用详解
2017/07/31 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
python实现清屏的方法
2015/04/30 Python
基于python log取对数详解
2018/06/08 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
python time()的实例用法
2020/11/03 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
给领导的检讨书
2014/02/16 职场文书
李开复演讲稿
2014/05/24 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
党的群众路线专项整治方案
2014/11/03 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python
Java对文件的读写操作方法
2022/04/29 Java/Android
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers