原生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 表格合并的问题分享
Sep 17 Javascript
javascript实现动态模态绑定grid过程代码
Sep 22 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
Feb 10 Javascript
javascript搜索框效果实现方法
May 14 Javascript
js实现仿京东2级菜单效果(带延时功能)
Aug 27 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
Dec 25 Javascript
Bootstrap与KnockoutJs相结合实现分页效果实例详解
May 03 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
原生js实现html手机端城市列表索引选择城市
Jun 24 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脚本代码
2011/02/19 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
Python通过正则表达式选取callback的方法
2015/07/18 Python
python学习教程之使用py2exe打包
2017/09/24 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
纯用NumPy实现神经网络的示例代码
2018/10/24 Python
Django之腾讯云短信的实现
2020/06/12 Python
pycharm实现猜数游戏
2020/12/07 Python
Python操作Excel的学习笔记
2021/02/18 Python
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
编写类String的构造函数、析构函数和赋值函数
2012/05/29 面试题
领导接待方案
2014/03/13 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
运动会标语
2014/06/21 职场文书
团组织推荐意见
2015/06/05 职场文书
战友聚会致辞
2015/07/28 职场文书
工作服管理制度范本
2015/08/06 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
ant design vue的form表单取值方法
2022/06/01 Vue.js