原生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 的 prototype问题。
Jan 03 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
Jan 23 Javascript
Javascript快速排序算法详解
Dec 03 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
JS中对数组元素进行增删改移的方法总结
Dec 15 Javascript
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
基于iview的router常用控制方式
May 30 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
小程序新版订阅消息模板消息
Dec 31 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 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
2.PHP入门
2006/10/09 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
Node.js事件循环(Event Loop)和线程池详解
2015/01/28 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
jQuery实现简单的抽奖游戏
2017/05/05 jQuery
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
Python里隐藏的“禅”
2014/06/16 Python
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
python实现简单的socket server实例
2015/04/29 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
博士生入学考试推荐信
2013/11/17 职场文书
大学四年规划书范文
2013/12/27 职场文书
青年标兵事迹材料
2014/08/16 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
项目负责人岗位职责
2015/02/15 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA