Ajax——使用XMLHttpResquest实现Ajax
发送请求
利用XMLHttpRequest实例与服务器进行通信包含以下3个关键部分:
——onreadystatechange事件处理函数
——open方法
——send方法
onreadystatechange:
——该事件处理函数由服务器触发,而不是用户
——在Ajax执行过程中,服务器会通知客户端当前的通信状态。这依靠更新XMLHttpRequest对象的readyState来实现。
改变readyState属性是服务器对客户端连接操作的一种方式。每次resdyState属性凡人改变都会触发readystatechange事件
在某些情况下,有些浏览器会把多个XMLHttpResquest请求的结果缓存在同一个URL。如果对每个请求响应不同,就会带来不好的结果。
在此将时间戳追加到URL的最后,就能确保URL的唯一性,从而避免浏览器缓存结果
index.jsp
1 <title>Insert title here</title> 2 <script type="text/javascript"> 3 4 window.onload = function(){ 5 //1.获取a节点,并为其添加onclick响应函数 6 document.getElementsByTagName("a")[0].onclick = function(){ 7 8 //3.创建一个XMLHttpResquest对象 9 var request = new XMLHttpRequest(); 10 11 //4.准备发送请求的数据:url 12 var url = this.href + "?time" + new Date(); 13 var method = "GET";//POST 14 15 //5.调用XMLHttpResquest对象的open方法 16 request.open(method,url); 17 //request.setRequestHeader("ContentType","application/x-www-form-urlencoded"); 18 19 //6.调用XMLHttpResquest对象的send方法 20 request.send(null)); 21 //request.send("name='atguigu'"); 22 23 //7.为XMLHttpRequest对象添加onreadystatechange响应函数 24 request.onreadystatechange = function(){ 25 //8.判断响应是否完成:XMLHttpRequest对象的readyState属性值为4的时候 26 if(request.readyState == 4){ 27 //9.再判断响应是否可用:XMLHttpRequest对象status属性值为200 28 if(request.status == 200 || request.status == 304){ 29 //10.打印响应结果:responseText 30 alert(request.responseText); 31 } 32 } 33 34 } 35 //2.取消a节点的默认行为 36 return false 37 } 38 39 } 40 41 </script> 42 43 </head> 44 <body> 45 46 <a href="helloAjax.txt">HelloAjax</a> 47 48 </body>
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步