原生JS简单实现ajax的方法示例


Posted in Javascript onNovember 29, 2016

本文实例讲述了原生JS简单实现ajax的方法。分享给大家供大家参考,具体如下:

HTML部分:

<body>
<input type="button" value="Ajax提交" onclick="Ajax();" />
<div id="resText" ></div>
</body>

这里有个input按钮,点击会触发click事件,click事件调用Ajax()方法。

JS部分:

<script language="javascript" type="text/javascript">
//通过这个函数来异步获取信息
function Ajax(){ 
  var xmlHttpReq = null;  //声明一个空对象用来装入XMLHttpRequest
  if (window.ActiveXObject){//IE5 IE6是以ActiveXObject的方式引入XMLHttpRequest的
    xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else if (window.XMLHttpRequest){//除IE5 IE6 以外的浏览器XMLHttpRequest是window的子对象
    xmlHttpReq = new XMLHttpRequest();//实例化一个XMLHttpRequest
  }
  if(xmlHttpReq != null){  //如果对象实例化成功 
    xmlHttpReq.open("GET","test.php",true);  //调用open()方法并采用异步方式
    xmlHttpReq.onreadystatechange=RequestCallBack; //设置回调函数
    xmlHttpReq.send(null);  //因为使用get方式提交,所以可以使用null参调用
  }
  function RequestCallBack(){//一旦readyState值改变,将会调用这个函数
    if(xmlHttpReq.readyState == 4){
        if(xmlHttpReq.status == 200){
          //将xmlHttpReq.responseText的值赋给ID为 resText 的元素
          document.getElementById("resText").innerHTML = xmlHttpReq.responseText;
        }
    }
  }
}
</script>

Ajax大约分四步,创建Ajax对象,用open()方法偷偷的跑到服务器去获取数据,成功后做相应的处理。用GET方法将要提交的参数写到open方法的url参数中就行了,此时send方法的参数为null。

例如GET方法 :

var url = "login.php?user=XXX&pwd=XXX";
xmlHttpRequest.open("GET",url,true);
xmlHttpRequset.send(null);

例如POST方法:

xmlHttpRequest.open("POST","login.php",true);
xmlHttpRequest.setRequestHeder("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlHttpRequest.send("user="+username+"&pwd="+password);

如果需要在send里传递参数则setRequestHeder是必须的

需要注意的是根据提交方式的不同,两种提交方式分别调用后台的doGet方法和doPost方法处理。

PHP部分:

<?php
  echo "Hello Ajax!";
?>

Ajax获取了PHP的数据后,就会偷偷的将数据放到相应的div层中。这个click事件并没有使得页面刷新,就偷偷的获取了服务器端的数据,服务端的数据也可以是从数据库里读取出来的,获取数据后,Ajax还可以进行一些动作的处理。

一切都在悄无声息中。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
使用jQuery jqPlot插件绘制柱状图
Dec 18 Javascript
jquery+ajax实现跨域请求的方法
Jan 20 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
Three.js学习之网格
Aug 10 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
Node.js+Express+MySql实现用户登录注册功能
Jul 10 Javascript
vue2.0 + ele的循环表单及验证字段方法
Sep 18 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
Nov 25 Javascript
原生js实现trigger方法示例代码
May 22 Javascript
js计时事件实现圆形时钟
Mar 25 Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 #Javascript
使用Vue.js创建一个时间跟踪的单页应用
Nov 28 #Javascript
js拖拽功能实现代码解析
Nov 28 #Javascript
百度搜索框智能提示案例jsonp
Nov 28 #Javascript
JS函数多个参数默认值指定方法分析
Nov 28 #Javascript
ajax级联菜单实现方法实例分析
Nov 28 #Javascript
jQuery select自动选中功能实现方法分析
Nov 28 #Javascript
You might like
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
初学JavaScript第二章
2008/09/30 Javascript
js 居中漂浮广告
2010/03/21 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
Node 自动化部署的方法
2017/10/17 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
python中List的sort方法指南
2014/09/01 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
Python和Go语言的区别总结
2019/02/20 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
2012/01/21 面试题
遇到的Mysql的面试题
2014/06/29 面试题
大学军训感言400字
2014/03/11 职场文书
六一亲子活动总结
2014/07/01 职场文书
乡镇食品安全责任书
2014/07/28 职场文书
大明湖导游词
2015/02/03 职场文书
大学生党员个人总结
2015/02/13 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
Java完整实现记事本代码
2022/06/16 Java/Android