原生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天然的迭代器
Oct 29 Javascript
jQuery对象的length属性用法实例
Dec 27 Javascript
javascript实现回车键提交表单方法总结
Jan 10 Javascript
js实现简洁的TAB滑动门效果代码
Sep 06 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
Vue.js学习之计算属性
Jan 22 Javascript
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 Javascript
微信小程序实现tab左右切换效果
Nov 15 Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 Javascript
javascript网页随机点名实现过程解析
Oct 15 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 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 传值赋值与引用赋值的区别
2010/12/29 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
js 判断 enter 事件
2009/02/12 Javascript
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
Python imread、newaxis用法详解
2019/11/04 Python
python几种常用功能实现代码实例
2019/12/25 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
文秘专业大学生求职信
2013/11/10 职场文书
历史系自荐信范文
2013/12/24 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
产品质量承诺书范文
2014/03/27 职场文书
授权委托书(完整版)
2014/09/10 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
观后感格式
2015/06/19 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript