原生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 相关文章推荐
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
JQUERY 获取IFrame中对象及获取其父窗口中对象示例
Aug 19 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
js+css3制作时钟特效
Oct 16 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
Dec 06 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
Dec 20 Javascript
利用jQuery实现一个简单的表格上下翻页效果
Mar 14 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
vue 实现路由跳转时更改页面title
Nov 05 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
php session_start()出错原因分析及解决方法
2013/10/28 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP如何通过表单直接提交大文件详解
2019/01/08 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
Python分析学校四六级过关情况
2017/11/22 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
自主招生自荐信
2013/12/08 职场文书
公司委托书格式范文
2014/04/04 职场文书
校园安全演讲稿
2014/05/09 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
决心书格式及范文
2019/06/24 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
vue 给数组添加新对象并赋值
2022/04/20 Vue.js