原生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模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
JS获取并操作iframe中元素的方法
Mar 21 Javascript
jquery异步跨域访问代码
Jun 28 Javascript
JavaScript对内存分配及管理机制详细解析
Nov 11 Javascript
javascript打开word文档的方法
Apr 16 Javascript
JS使用getComputedStyle()方法获取CSS属性值
Apr 23 Javascript
js鼠标点击图片切换效果实现代码
Nov 19 Javascript
JavaScript中数组添加值和访问值常见问题
Feb 06 Javascript
微信小程序 框架详解及实例应用
Sep 26 Javascript
request请求获取参数的实现方法(post和get两种方式)
Sep 27 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
js重写方法的简单实现
2016/07/10 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
python连接PostgreSQL过程解析
2020/02/09 Python
python对一个数向上取整的实例方法
2020/06/18 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
优秀毕业生求职推荐信范文
2013/11/21 职场文书
学校消防演习方案
2014/02/19 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL
详解SQL报错盲注
2022/07/23 SQL Server