AJAX异步请求的功能与实现

AJAX异步请求

通过js代码模拟浏览器向服务器发送http请求,服务器响应之后进行捕获更新页面

异步请求:异步请求就是网速很慢的情况下请求数据但是只有后台服务器数据到达了网页当中,浏览器才会把整个网页的内容做修改

说白了就是整个页面框架都不会更新更新的只有js从服务器请求的数据

方法和属性说明
req.open(method, url, async)method:[GET|POST] url:url async:[true(异步,默认) | false(同步)]
req.send()发送HTTP 请求
req.responseText获得字符串形式的响应数据。
readyState存有XMLHttpRequest 的状态。 请求发送到后台后,状态会从0 到4 发生变化: 1:服务器连接已建立。 2:请求已接收。 3:请求处理中。 4:请求已完成,且响应已就绪。
req.onreadystatechange每当readyState 属性改变时,就会调用该函数。
status状态码

构建异步请求

  1. 初始化一个XMLHttpRequest实列对象
    • var req = new XMLHttpRequest;
  2. 构造一个请求req.open(http方法, 要求的url地址, async 异/同 true/false)
    • req.open(‘GET’,‘http://localhost/’,true/false);
  3. 发送请求rep.send();将构造好的请求进行发送
    • req.send();
  4. 查看响应的内容req.responseText 获得字符串形式的响应数据
    • req.responseText
  5. 通过req.readyState查看XMLHttpRequest状态 1-4状态 1为连接 ;2为请求已接收;3请求处理中 ;4请求已完成
    • req.readyState

案例

用AJAXx完成异步请求flag

1.编写flag将flag写入php文件并写入sleep函数模拟网上很慢

<?php
sleep(10);
?>
flag{e10adc3949ba59abbe56e057f20f883e 

2.编写异步请求
利用req.onreadystatechange进行控制读取flag的时间
等待页面加载完毕再去完成flag请求


<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<textarea id="flag"></textarea>
	<script>
		function get_flag(){
		var req= new XMLHttpRequest();
		
		req.open("GET","http://10.9.47.77/flag.php",true);
		req.send();
		
		req.onreadystatechange = function(){
        if(req.readyState == 4 && req.status == 200){
			flag=req.responseText;
			console.log(flag);
		document.getElementById('flag').textContent=flag;
		}
		}
	}
		get_flag();
	</script>
	</body>
</html>

实验结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值