原生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的动态创建DOM元素的代码
Dec 28 Javascript
jQuery实现在textarea指定位置插入字符或表情的方法
Mar 11 Javascript
javascript中动态函数用法实例分析
May 14 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
AngularJS表单和输入验证实例
Nov 02 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
js实现京东秒杀倒计时功能
Jan 21 Javascript
基于JS实现前端压缩上传图片的实例代码
May 14 Javascript
jQuery实现放大镜案例
Oct 19 jQuery
详解js创建对象的几种方式和对象方法
Mar 01 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
Windows 下的 PHP-PEAR 安装方法
2010/11/20 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP反射机制用法实例
2014/08/28 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
Javascript对象属性方法汇总
2013/11/21 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
js网页滚动条滚动事件实例分析
2015/05/05 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
Python内建模块struct实例详解
2018/02/02 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
汽车工程专业应届生求职信
2013/10/19 职场文书
应届生船舶驾驶求职信
2013/10/19 职场文书
出纳员的岗位职责
2014/02/22 职场文书
演讲主持词
2014/03/18 职场文书
党务公开方案
2014/05/06 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
合同纠纷调解书
2015/05/20 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
PyQt5实现多张图片显示并滚动
2021/06/11 Python