原生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 10 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
Mar 07 Javascript
基于jQuery的message插件实现右下角弹出消息框
Jan 11 Javascript
判断滚动条到底部的JS代码
Nov 04 Javascript
使用javascript为网页增加夜间模式
Jan 26 Javascript
7个让JavaScript变得更好的注意事项
Jan 28 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
Jun 29 Javascript
JavaScript事件用法浅析
Oct 31 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 jQuery
vue2+el-menu实现路由跳转及当前项的设置方法实例
Nov 07 Javascript
Node批量爬取头条视频并保存方法
Sep 20 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php Static关键字实用方法
2010/06/04 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
PHP的openssl加密扩展使用小结(推荐)
2016/07/18 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
React应用中使用Bootstrap的方法
2017/08/15 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
微信小程序实现无限滚动列表
2020/05/29 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
深入理解Python变量与常量
2016/06/02 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
什么是Python包的循环导入
2020/09/08 Python
Python读写锁实现实现代码解析
2020/11/28 Python
python二维图制作的实例代码
2020/12/03 Python
python中time tzset()函数实例用法
2021/02/18 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
Java里面有没有全局变量?为什么?
2015/02/06 面试题
工程业务员岗位职责
2013/12/31 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
MySQL系列之三 基础篇
2021/07/02 MySQL
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android