原生JavaScript实现Ajax的完整流程与代码示例

作者:异步漫步时间:2026-10-30 17:29:46浏览:266

本文详细介绍如何使用原生JavaScript实现Ajax异步通信。通过XMLHttpRequest对象,演示了从创建对象、配置请求到处理响应的完整步骤,涵盖GET与POST两种提交方式的区别及PHP后端交互示例,帮助开发者掌握无需刷新页面即可获取服务器数据的核心技术。

原生JavaScript实现Ajax概述

本文通过具体实例,解析如何使用原生JavaScript实现Ajax功能,供读者参考学习。

HTML结构与事件绑定

HTML结构部分:


<body>
<input type="button" value="Ajax提交" onclick="Ajax();" />
<div id="resText" ></div>
</body>

页面中包含一个input按钮,点击该按钮会触发click事件,进而调用名为Ajax()的函数。

JavaScript核心逻辑与步骤

JavaScript逻辑部分:


<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方法实现示例

以下是GET方法的具体实现示例:


var url = "login.php?user=XXX&pwd=XXX";
xmlHttpRequest.open("GET",url,true);
xmlHttpRequset.send(null);

POST方法实现示例

以下是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后端部分:


<?php
  echo "Hello Ajax!";
?>

Ajax获取到PHP返回的数据后,会将数据异步填充至对应的div层中。此过程不会导致页面刷新,从而实现了静默获取服务器数据的效果。服务器数据可来源于数据库读取,获取后可进一步执行其他业务逻辑。

整个过程在用户无感知的情况下完成。

如需了解更多JavaScript相关内容,可参考本站专题:《JavaScript中ajax操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。

希望本文所述内容能对JavaScript程序设计有所帮助。

作者最新文章