原生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的温度计动画效果
Jun 18 Javascript
JS检测图片大小的实例
Aug 21 Javascript
js创建元素(节点)示例
Jan 02 Javascript
jquery中each遍历对象和数组示例
Aug 05 Javascript
使用jQuery简单实现模拟浏览器搜索功能
Dec 21 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 Javascript
Vue-resource实现ajax请求和跨域请求示例
Feb 23 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
Dec 02 Javascript
react实现移动端下拉菜单的示例代码
Jan 16 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 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的配置文件php.ini
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
深入php多态的实现详解
2013/06/09 PHP
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
如何编写jquery插件
2017/03/29 jQuery
探讨Vue.js的组件和模板
2017/10/27 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
python Django模板的使用方法(图文)
2013/11/04 Python
django中瀑布流写法实例代码
2019/10/14 Python
Python中bisect的用法及示例详解
2020/07/20 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
Yahoo-PHP面试题4
2012/05/05 面试题
钳工实习自我鉴定
2013/09/19 职场文书
学校消防安全制度
2014/01/30 职场文书
项目经理任命书内容
2014/06/06 职场文书
门面房租房协议书
2014/08/20 职场文书
2014年除四害工作总结
2014/12/06 职场文书
小浪底导游词
2015/02/12 职场文书
班主任高考寄语
2015/02/26 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
GPU服务器的多用户配置方法
2022/07/07 Servers