原生JavaScript实现Ajax的方法


Posted in Javascript onApril 07, 2016

首先为大家分享了原生JavaScript实现Ajax代码,供大家参考,具体内容如下

var getXmlHttpRequest = function() {
  if (window.XMLHttpRequest) {
    //主流浏览器提供了XMLHttpRequest对象
    return new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    //低版本的IE浏览器没有提供XMLHttpRequest对象
    //所以必须使用IE浏览器的特定实现ActiveXObject
    return new ActiveXObject("Microsoft.XMLHttpRequest");
  }

};
var xhr = getXmlHttpRequest();
xhr.onreadystatechange = function() {
  console.log(xhr.readyState);
  if (xhr.readyState === 3 && xhr.status === 200) {
    //获取成功后执行操作
    //数据在xhr.responseText
    console.log(xhr.responseText);
  }
};
xhr.open("get", "data.php", true);
xhr.send("");

下面和大家分享几种利用javascript实现原生ajax的方法。
实现ajax之前必须要创建一个 XMLHttpRequest 对象。如果不支持创建该对象的浏览器,则需要创建 ActiveXObject,具体方法如下:

var xmlHttp; 
function createxmlHttpRequest() { 
if (window.ActiveXObject) { 
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} else if (window.XMLHttpRequest) { 
xmlHttp=new XMLHttpRequest(); 
}

(1)下面使用上面创建的xmlHttp实现最简单的ajax get请求:

function doGet(url){ 
// 注意在传参数值的时候最好使用encodeURI处理一下,以防出现乱码 
createxmlHttpRequest(); 
xmlHttp.open("GET",url); 
xmlHttp.send(null); 
xmlHttp.onreadystatechange = function() { 
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) { 
alert('success'); 
} else { 
alert('fail'); 
} 
} 
}

(2)使用上面创建的xmlHttp实现最简单的ajax post请求:

function doPost(url,data){ 
// 注意在传参数值的时候最好使用encodeURI处理一下,以防出现乱码 
createxmlHttpRequest(); 
xmlHttp.open("POST",url); 
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
xmlHttp.send(data); 
xmlHttp.onreadystatechange = function() { 
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) { 
alert('success'); 
} else { 
alert('fail'); 
} 
} 
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
javascript表单验证使用示例(javascript验证邮箱)
Jan 07 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
JavaScript中Date.toSource()方法的使用教程
Jun 12 Javascript
Angularjs中的页面访问权限怎么设置
Nov 11 Javascript
jQuery与JavaScript节点创建方法的对比
Nov 18 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
详解webpack+vue-cli项目打包技巧
Jun 17 Javascript
Bootstrap与Angularjs的模态框实例代码
Aug 03 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
JavaScript递归算法生成树形菜单
Aug 15 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
JavaScript数据推送Comet技术详解
Apr 07 #Javascript
js实现商品抛物线加入购物车特效
Nov 18 #Javascript
js类式继承与原型式继承详解
Apr 07 #Javascript
javascript原型继承工作原理和实例详解
Apr 07 #Javascript
浅析JS原型继承与类的继承
Apr 07 #Javascript
AngularJs 弹出模态框(model)
Apr 07 #Javascript
详解AngularJS 模态对话框
Apr 07 #Javascript
You might like
详细解读php的命名空间(一)
2018/02/21 PHP
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
python实现删除文件与目录的方法
2014/11/10 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
Python学生信息管理系统修改版
2018/03/13 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
python支持多线程的爬虫实例
2019/12/21 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
sort命令的作用和用法
2013/08/25 面试题
三项教育活动实施方案
2014/03/30 职场文书
促销活动计划书
2014/05/02 职场文书
创新社会管理心得体会
2014/09/12 职场文书
春秋淹城导游词
2015/02/11 职场文书
Python可视化神器pyecharts绘制水球图
2022/07/07 Python
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python