原生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 相关文章推荐
Extjs学习笔记之二 初识Extjs之Form
Jan 07 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
Aug 14 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
Jan 11 Javascript
教你如何使用PHP输出中文JSON字符串
May 22 Javascript
jQuery事件用法实例汇总
Aug 29 Javascript
jQuery实现tag便签去重效果的方法
Jan 20 Javascript
js获取当前页的URL与window.location.href简单方法
Feb 13 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
May 26 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
Jun 05 Javascript
Web应用开发TypeScript使用详解
May 25 Javascript
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
treepanel动态加载数据实现代码
2012/12/15 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
Angular实现跨域(搜索框的下拉列表)
2017/02/16 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
Python生成指定数量的优惠码实操内容
2019/06/18 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
详解Python3 pickle模块用法
2019/09/16 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
澳大利亚在线批发商:Simply Wholesale
2021/02/24 全球购物
高三自我鉴定
2013/10/23 职场文书
社会工作专业求职信
2014/07/15 职场文书
竞聘自述材料
2014/08/25 职场文书
介绍信格式样本
2015/05/05 职场文书
情感电台广播稿
2015/08/18 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
初三数学教学反思
2016/02/17 职场文书
深入理解python多线程编程
2021/04/18 Python
mysql sql常用语句大全
2022/06/21 MySQL