原生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的$.event.fix函数统一浏览器event事件处理
Dec 21 Javascript
jQuery 获取URL参数的插件
Mar 04 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
Apr 07 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
Jun 03 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
Jul 21 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
Sep 28 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
Apr 22 Javascript
浅谈Vue 初始化性能优化
Aug 31 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
Dec 05 Javascript
基于Three.js实现360度全景图片
Dec 30 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
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
javascript document.execCommand() 常用解析
2009/12/14 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
jQuery中extend函数简单用法示例
2017/10/11 jQuery
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
python编码总结(编码类型、格式、转码)
2016/07/01 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
Python嵌入C/C++进行开发详解
2020/06/09 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
美国糖果店:Sugarfina
2019/02/21 全球购物
大学生职业生涯规划范文
2014/01/08 职场文书
学习型班组申报材料
2014/05/31 职场文书
食品安全汇报材料
2014/08/18 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
公司捐书倡议书
2015/04/27 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
圆明园观后感
2015/06/03 职场文书
公司保密管理制度
2015/08/04 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
财产分割协议书
2016/03/22 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis