原生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的.animate()函数在IE6下的问题
Dec 03 Javascript
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
jquery 淡入淡出效果的简单实现
Feb 07 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 Javascript
后台获取ZTREE选中节点的方法
Feb 12 Javascript
浏览器中url存储的JavaScript实现
Jul 07 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
javascript实现数组去重的多种方法
Mar 14 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
详解基于node的前端项目编译时内存溢出问题
Aug 01 Javascript
js面向对象编程OOP及函数式编程FP区别
Jul 07 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
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
ExtJS的拖拽效果示例
2013/12/09 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
纯javascript版日历控件
2016/11/24 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
python 调用win32pai 操作cmd的方法
2017/05/28 Python
3种python调用其他脚本的方法
2020/01/06 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
德国购买健身器材:AsVIVA
2017/08/09 全球购物
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
《忆江南》教学反思
2014/04/07 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
MySql开发之自动同步表结构
2021/05/28 MySQL
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript