原生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 相关文章推荐
准确获得页面、窗口高度及宽度的JS
Nov 26 Javascript
Cookie 注入是怎样产生的
Apr 08 Javascript
DIY jquery plugin - tabs标签切换实现代码
Dec 11 Javascript
原生JS可拖动弹窗效果实例代码
Nov 09 Javascript
jquery实现弹出层完美居中效果
Mar 03 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
Oct 09 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
微信小程序之ES6与事项助手的功能实现
Nov 30 Javascript
Angular2学习笔记——详解路由器模型(Router)
Dec 02 Javascript
最常用的jQuery表单验证(简单)
May 23 jQuery
浅谈Webpack4 Tree Shaking 终极优化指南
Nov 18 Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 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
PHP个人网站架设连环讲(一)
2006/10/09 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
JavaScript原型链示例分享
2014/01/26 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
2018/09/13 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
JS随机密码生成算法
2019/09/23 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
使用python实现简单五子棋游戏
2019/06/18 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
python基于socket函数实现端口扫描
2020/05/28 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
见习期自我鉴定
2014/01/31 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL