原生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 相关文章推荐
显示、隐藏密码
Jul 01 Javascript
基于jquery的让textarea自适应高度的插件
Aug 03 Javascript
jQuery中triggerHandler()方法用法实例
Jan 19 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
Sep 10 Javascript
Angular.JS通过指令操作DOM的方法
May 10 Javascript
详解在AngularJS的controller外部直接获取$scope
Jun 02 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
Dec 07 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
May 09 Javascript
学习LayUI时自研的表单参数校验框架案例分析
Jul 29 Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 Javascript
JavaScript实现前端倒计时效果
Feb 09 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
8个必备的PHP功能实例代码
2013/10/27 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
详解supervisor使用教程
2017/11/21 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python3 深浅copy对比详解
2019/08/12 Python
pytorch 预训练层的使用方法
2019/08/20 Python
TensorFlow梯度求解tf.gradients实例
2020/02/04 Python
python3让print输出不换行的方法
2020/08/24 Python
如何用Django处理gzip数据流
2021/01/29 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
毕业生自荐书
2014/02/02 职场文书
生产部岗位职责范文
2014/02/07 职场文书
文艺晚会主持词
2014/03/24 职场文书
推荐信模板
2014/05/09 职场文书
创文明城市标语
2014/06/16 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
部门2015年度工作总结
2015/04/29 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书