原生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 相关文章推荐
按Enter键触发事件的jquery方法实现代码
Feb 17 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
jqueryUI里拖拽排序示例分析
Feb 26 Javascript
jquery中JSON的解析方式
Mar 16 Javascript
jquery插件bxslider用法实例分析
Apr 16 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
jquery+css实现的红色线条横向二级菜单效果
Aug 22 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
angular源码学习第一篇 setupModuleLoader方法
Oct 20 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
JavaScript正则表达式和级联效果
Sep 14 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 循环删除无限分类子节点的实现代码
2013/06/21 PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
JavaScript 数组中最大最小值
2016/06/05 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
JS中双击和单击事件冲突的解决方法
2018/04/09 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
python传递参数方式小结
2015/04/17 Python
python如何为创建大量实例节省内存
2018/03/20 Python
使用python3实现操作串口详解
2019/01/01 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
html5 标签
2009/07/16 HTML / CSS
日本亚马逊官方网站:Amazon.co.jp
2020/04/14 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
教师岗位职责范本
2013/12/29 职场文书
毕业生自荐信格式
2014/03/07 职场文书
贷款委托书
2014/08/01 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
美术教师个人总结
2015/02/06 职场文书
介绍信格式样本
2015/05/05 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL