原生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 相关文章推荐
使用Java实现简单的server/client回显功能的方法介绍
May 03 Javascript
JavaScript设计模式之工厂模式和构造器模式
Feb 11 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
jquery实现简单文字提示效果
Dec 02 Javascript
javascript运算符语法全面概述
Jul 14 Javascript
JS中跳出循环的示例代码
Sep 14 Javascript
puppeteer实现html截图的示例代码
Jan 10 Javascript
echarts统计x轴区间的数值实例代码详解
Jul 07 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 Javascript
javascript实现下拉菜单效果
Feb 09 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下的权限算法的实现
2007/04/28 PHP
基于PHPExcel的常用方法总结
2013/06/13 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
一个JS小玩意 几个属性相加不能超过一个特定值.
2009/09/29 Javascript
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python类成员继承重写的实现
2020/09/16 Python
2014最新房贷收入证明范本
2014/09/12 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
早会开场白台词大全
2015/06/01 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
Redis实现短信验证码登录的示例代码
2022/06/14 Redis