原生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 相关文章推荐
Jquery 基础学习笔记
May 29 Javascript
js操作css属性实现div层展开关闭效果的方法
May 11 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
JavaScript学习笔记之取数组中最大值和最小值
Mar 23 Javascript
浅析JS异步加载进度条
May 05 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
May 19 Javascript
Vue.js每天必学之内部响应式原理探究
Sep 07 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
JS文件中加载jquery.js的实例代码
May 05 jQuery
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP获取url的函数代码
2011/08/02 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
PHP对象实例化单例方法
2017/01/19 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
javascript跨域总结之window.name实现的跨域数据传输
2015/11/01 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python email smtplib模块发送邮件代码实例
2018/04/26 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
pytorch permute维度转换方法
2018/12/14 Python
Python根据成绩分析系统浅析
2019/02/11 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
django连接mysql数据库及建表操作实例详解
2019/12/10 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
什么是重载?CTS、CLS和CLR分别做何解释
2012/05/06 面试题
党委班子剖析材料
2014/08/21 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
教师个人事迹材料
2014/12/17 职场文书
工地食品安全责任书
2015/05/09 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL