Ajax的基本流程

ajax的概念

局部刷新技术。不是一门新技术,是多种技术的组合。是浏览器端的技术

ajax的作用

实现在当前结果页中显示其他请求的响应内容

ajax的基本流程

  1. 创建ajax引擎对象
  2. 复写onreadystatement函数
    判断ajax状态码
    判断响应状态码
    获取响应内容(响应内容的格式)
    处理响应内容(js操作文档结构)
  3. 发送请求
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>

<script type="text/javascript">
	function getData(){		
		//创建ajax引擎对象
			var ajax;
			if(window.XMLHttpRequest){//火狐
				ajax=new XMLHttpRequest();
			}else if(window.ActiveXObject){//ie
				ajax=new ActiveXObject("Msxml2.XMLHTTP");
			}
		
			//复写onreadystatement函数
			ajax.onreadystatechange=function(){
				//判断Ajax状态吗
				if(ajax.readyState==4){
					//判断响应状态吗
					if(ajax.status==200){
						//获取响应内容
						var result=ajax.responseText;
						//处理响应内容
							//获取元素对象
							var showdiv=document.getElementById("showdiv");
							showdiv.innerHTML=result;
					}else if(ajax.status==404){
						//获取元素对象
						var showdiv=document.getElementById("showdiv");
						showdiv.innerHTML="请求资源不存在";
					}else if(ajax.status==500){
						//获取元素对象
						var showdiv=document.getElementById("showdiv");
						showdiv.innerHTML="服务器繁忙";
					}
				}
			}
		//发送请求
		ajax.open("get","ajax");
		ajax.send(null);
	}
</script>
<style type="text/css">
	#showdiv{
		border:solid 1px;
		width:200px;
		height:100px; 
	}
</style>
</head>
<body>
	<h3>欢迎登录</h3>
	<hr>
	<input type="button" value="测试 " onclick="getData()"/>
	<div id="showdiv"></div>
</body>
</html> 

代码解析:

  1. 对于发送请求是get方式:
ajax.open("请求方式","请求地址");
ajax.send(请求数据");//请求数据,用get方式拼到url后面,不在send里写入

对于发送请求时post方式,把请求数据写入send中
总结:
get请求
get的请求实体拼接在URL后面,?隔开,键值对

//获取用户请求数据
		var uname=document.getElementById("uname").value;
		var data="name="+uname;
		ajax.open("get","ajax?"+data);
				ajax.send(null);

post请求
有单独的请求实体

ajax.open("post", "url");
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("name=张三&pwd=123");
  1. ajax.status可以返回每次请求的状态码
  2. onreadystatechange 是监听函数

ajax状态码由readyState表示:0,1,2,3,4
4: 表示响应内容被成功接收

readyState值含义
0表示XMLHttpRequest已建立,但还未初始化,这时尚未调用open方法
1表示open方法已经调用,但未调用send方法(已创建,未发送)
2表示send方法已经调用,其他数据未知
3表示请求已经成功发送,正在接受数据
4表示数据已经成功接收

响应状态码:用status函数
200:表示没有问题
404:资源未找到
500:内部服务器错误

Http状态码含义
200请求成功
404请求资源未找到
500内部服务器错误
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值