原生JavaScript实现Ajax的完整流程与代码示例
本文详细介绍如何使用原生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程序设计有所帮助。
JavaScript怎么遍历对象的Symbol键和不可枚举属性
2026-11-05 13:13:39
封装一个健壮的JS字符串判空工具函数
2026-11-05 12:16:14
JavaScript合并数组的三种常用方法:concat、扩展运算符与push
2026-11-05 11:22:29
JavaScript立即执行函数(IIFE)是什么及基本语法
2026-11-05 10:51:19
JS对象数组转字符串为什么推荐用JSON.stringify()
2026-11-05 09:40:31
