Ajax理解

ajax概述

  1. 是一种在前端开发中用于创建异步网络请求的技术
  2. 在不刷新整个页面的情况下,与服务器进行数据交换和通信(from表单提交的方式需要刷新整个页面)

Ajax使用

  1. 创建XMLHttpRequest对象
//不同的	浏览器使用的异步调用的对象有所不同

//创建Ajax核心对象XMLHttpRequest
var xhr=null;  
if (window.XMLHttpRequest)  
{// 兼容 IE7+, Firefox, Chrome, Opera, Safari浏览器
	 xhr=new XMLHttpRequest();  
} else{// 兼容 IE6, IE5 浏览器
     xhr=new ActiveXObject("Microsoft.XMLHTTP");  
} 

  1. 创建Http请求
//格式
xhr.open(method,URL,flag,name,password);
//案例,一般只用前三个参数
xhr.open('get','http://localhost:8080/...',true);
  1. method:HttP请求的方法 ,一共有5个请求方法:“get,post,head,put,delete”
  2. URL:HttP请求的URL地址
  3. flag:是否开启异步方式,默认为true
  4. name:用于输入用户名,如果服务器需要验证,则必须使用该参数
  5. password:用于输入密码,若服务器需要验证,则必须使用该参数

  1. 设置响应HTTP请求状态变化的函数

创建完HTTP请求之后,应该就可以将HTTP请求发送给Web服务器了。然而,发送HTTP请求的目的是为了接收从服务器中返回的数据。从创建XMLHttpRequest对象开始,到发送数据、接收数据、XMLHttpRequest对象一共会经历以下5中状态

0:为初始化状态,创建完XMLHttpRequest对象时
1:初始化状态,使用open()方法创建Http请求时
2:发送数据状态,使用send()方法发送数据时
3:接收数据状态,服务器向客户端返回结果时
4:完成状态,XMLHttpRequest接收响应结果完毕

判断响应结果

xhr.onreadstatechange=function() {
  if(xhr.readyState == 4) {
    //当状态为4时证明请求已完成并为完毕状态,才可以对响应数据进行操作
    //这个里面处响应
  }
}

  1. 发送请求
xhr.send();

  1. 完整的ajax案例
<html>
<head>
<title>AJAX实例</title>
<script language="javascript" type="text/javascript">   
    function xr(){
		let by;  // 创建XMLHttpRequest对象,即一个用于保存异步调用对象的变量
		if(window.ActiveXObject){ // IE浏览器的创建方式
            by = new ActiveXObject("Microsoft.XMLHTTP");
        }else if(window.XMLHttpRequest){ // Netscape浏览器中的创建方式
            by = new XMLHttpRequest();
        }
		xmlHttpRequest.onreadystatechange=function(){ // 设置响应http请求状态变化的事件
            console.log('请求过程', xmlHttpRequest.readyState);
			if(xmlHttpRequest.readyState == 4){ // 判断异步调用是否成功,若成功开始局部更新数据
				console.log('状态码为', xmlHttpRequest.status);
				if(xmlHttpRequest.status == 200) {
					console.log('异步调用返回的数据为:', xmlHttpRequest .responseText);
					document.getElementById("myDiv").innerHTML = xmlHttpRequest .responseText; // 局部刷新数据到页面
				} else { // 如果异步调用未成功,弹出警告框,并显示错误状态码
					alert("error:HTTP状态码为:"+xmlHttpRequest.status);
				}
			}
		}
		by.open("GET","https://www.runoob.com/try/ajax/ajax_info.txt",true); // 创建http请求,并指定请求得方法(get)、url(https://www.runoob.com/try/ajax/ajax_info.txt)以及验证信息
		by.send(null); // 发送请求
    }
</script>
</head>
<body>
    <div id="myDiv">原数据</div>
    <input type = "button" value = "更新数据" onclick = "ajaxHttpRequestFunc()">
</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁惜若༒奔已꧂

争取做到更好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值