原生js实现ajax方法(超简单)


Posted in Javascript onSeptember 20, 2016

上一篇文章写到原生js取代jquery的一些常用函数:原生js仿jquery一些常用方法,那么,ajax如何实现呢?如下是一个比较完整的ajax()

function ajax(){ 
  var ajaxData = { 
    type:arguments[0].type || "GET", 
    url:arguments[0].url || "", 
    async:arguments[0].async || "true", 
    data:arguments[0].data || null, 
    dataType:arguments[0].dataType || "text", 
    contentType:arguments[0].contentType || "application/x-www-form-urlencoded", 
    beforeSend:arguments[0].beforeSend || function(){}, 
    success:arguments[0].success || function(){}, 
    error:arguments[0].error || function(){} 
  } 
  ajaxData.beforeSend() 
  var xhr = createxmlHttpRequest();  
  xhr.responseType=ajaxData.dataType; 
  xhr.open(ajaxData.type,ajaxData.url,ajaxData.async);  
  xhr.setRequestHeader("Content-Type",ajaxData.contentType);  
  xhr.send(convertData(ajaxData.data));  
  xhr.onreadystatechange = function() {  
    if (xhr.readyState == 4) {  
      if(xhr.status == 200){ 
        ajaxData.success(xhr.response) 
      }else{ 
        ajaxData.error() 
      }  
    } 
  }  
} 
 
function createxmlHttpRequest() {  
  if (window.ActiveXObject) {  
    return new ActiveXObject("Microsoft.XMLHTTP");  
  } else if (window.XMLHttpRequest) {  
    return new XMLHttpRequest();  
  }  
} 
 
function convertData(data){ 
  if( typeof data === 'object' ){ 
    var convertResult = "" ;  
    for(var c in data){  
      convertResult+= c + "=" + data[c] + "&";  
    }  
    convertResult=convertResult.substring(0,convertResult.length-1) 
    return convertResult; 
  }else{ 
    return data; 
  } 
}

使用格式跟jquery的ajax差不多:

ajax({ 
  type:"POST", 
  url:"ajax.php", 
  dataType:"json", 
  data:{"val1":"abc","val2":123,"val3":"456"}, 
  beforeSend:function(){ 
    //some js code 
  }, 
  success:function(msg){ 
    console.log(msg) 
  }, 
  error:function(){ 
    console.log("error") 
  } 
})

以上就是小编为大家带来的原生js实现ajax方法(超简单)的全部内容了,希望对大家有所帮助,多多支持三水点靠木~

Javascript 相关文章推荐
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
javascript实现框架高度随内容改变的方法
Jul 23 Javascript
JS实现可调整倒计时间代码分享
Aug 18 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
Feb 19 Javascript
jQuery组件easyui基本布局实现代码
Aug 25 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
用vue写一个日历
Nov 02 Javascript
原生js仿jquery一些常用方法(必看篇)
Sep 20 #Javascript
原生js封装的一些jquery方法(详解)
Sep 20 #Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 #Javascript
jQuery在ie6下无法设置select选中的解决方法详解
Sep 20 #Javascript
jQuery简单倒计时效果完整示例
Sep 20 #Javascript
AngularJS中$watch和$timeout的使用示例
Sep 20 #Javascript
jQuery实现的网页换肤效果示例
Sep 20 #Javascript
You might like
深入了解PHP类Class的概念
2012/06/14 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
基于Vue制作组织架构树组件
2017/12/06 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
深入理解Python中字典的键的使用
2015/08/19 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Python使用python-docx读写word文档
2019/08/26 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
关键字throw与throws的用法差异
2016/11/22 面试题
大学生毕业自我评价范文分享
2013/11/11 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
医学类个人求职信范文
2014/02/05 职场文书
环境建设实施方案
2014/03/14 职场文书
股份合作协议书
2014/04/12 职场文书
学校节能减排倡议书
2014/05/16 职场文书
效能监察建议书
2014/05/19 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
医院科室评语
2015/01/04 职场文书