原生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 写类方式之十
Jul 05 Javascript
Js切换功能的简单方法
Nov 23 Javascript
js 优化次数过多的循环 考虑到性能问题
Mar 05 Javascript
php对mongodb的扩展(小试牛刀)
Nov 11 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
JavaScript的事件代理和委托实例分析
Mar 25 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
Aug 06 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
JS运动特效之完美运动框架实例分析
Jan 24 Javascript
Element input树型下拉框的实现代码
Dec 21 Javascript
JavaScript Array对象使用方法解析
Sep 24 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中explode与split的区别介绍
2012/10/03 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
将Sublime Text 3 添加到右键中的简单方法
2017/12/12 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
2017/12/27 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
jQuery实现简单聊天室
2020/02/08 jQuery
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
学生信息管理系统python版
2018/10/17 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
基于 HTML5 WebGL 实现的垃圾分类系统
2019/10/08 HTML / CSS
有关打架的检讨书
2014/01/25 职场文书
大学生就业自荐书
2014/06/16 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
2016国庆促销广告语
2016/01/28 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python