加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax

发布时间:2020-12-15 21:33:21 所属栏目:百科 来源:网络整理
导读:Ajax(Asynchronous javascript and xml) 异步的js和xml ajax使用js异步访问访问服务器,服务器响应数据给客户端text、xml、json 优点:增强用户体验,因服务器只用响应部分内容减轻了服务器压力 Ajax发送异步请求 1、得到XMLHttpRequest对象 2、打开与服务器
Ajax(Asynchronous javascript and xml)
异步的js和xml
ajax使用js异步访问访问服务器,服务器响应数据给客户端text、xml、json
优点:增强用户体验,因服务器只用响应部分内容减轻了服务器压力

Ajax发送异步请求
1、得到XMLHttpRequest对象
2、打开与服务器连接xmlHttp.open()
3、发送请求xmlHttp.send(请求方式,URL,true(异步请求)/..)
4、读取服务器响应
xmlHttp对象的5个状态
0:刚创建
1:请求开始
2:请求已发送
3:服务器开始响应
4:服务器响应结束
得到XMLHttp对象状态
var state = xmlHttp.reaydyState;
得到服务器响应的状态码
var status = xmlHttp.status;
得到服务器的相应内容
var content = xmlHttp.responseText;//得到服务器响应的文本格式内容
var content = xmlHttp.responseXML;//得到服务器响应的xml内容(Document对象)
!XMLHttpRequest(异步请求对象)在不同浏览器中创佳语法不同
<script type="text/javascript">
function createXMLHttpRequest() {
	try {
		return new XMLHttpRequest();//大多数浏览器
	} catch (e) {
		try {
			return ActvieXObject("Msxml2.XMLHTTP");//IE6.0
		} catch (e) {
			try {
				return ActvieXObject("Microsoft.XMLHTTP");//IE5及更早版本	
			} catch (e) {
				throw e;
			}
		}
	}
}
</script>
!发送post请求
open()打开与服务器连接后,设置请求头
xmlHttp.setRequestHead("Content-Type","application/x-www-form-urlencoded");

-----------------------------------------------------------------------------------------------------------------

发送GET请求

	public void doGet(HttpServletRequest request,HttpServletResponse response)
			throws ServletException,IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("UTF-8");
		
		response.getWriter().print("This is AJAX.");
	}

window.onload = function(){
 var btn =document.getElementById("btn");
 btn.onclick = function(){
  //注册监听
  //1.得到XMLHttpRequest异步请求对象
  var xmlHttpRequest = createXMLHttpRequest();
  //2.打开与服务器的连接
  xmlHttpRequest.open("GET","<c:url value='/Aservlet'/>",true);
  //3.发送请求
  xmlHttpRequest.send(null);//GET请求没有请求体,但是必须给null
  //4.给异步请求对象的onreadystatechange事件注册监听器
  xmlHttpRequest.onreadystatechange = function(){
   if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status ==200){
    var text = xmlHttpRequest.responseText;//获取响应内容
    //将相应内容添加到h1
    var h1 = document.getElementById("h1");
    h1.innerHTML=text;
   }
  };
 };
};

发送POST请求

	public void doPost(HttpServletRequest request,IOException {
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("UTF-8");
		
		String username=request.getParameter("username");
		response.getWriter().print(username+"This is AJAX.");
	}


window.onload = function(){
	var btn =document.getElementById("btn");
	btn.onclick = function(){
		//注册监听
		//1.得到XMLHttpRequest异步请求对象
		var xmlHttpRequest = createXMLHttpRequest();
		//2.打开与服务器的连接
		xmlHttpRequest.open("POST",true);
		xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		//3.发送请求
		xmlHttpRequest.send("username=Hello!");//GET请求没有请求体,但是必须给null
		//4.给异步请求对象的onreadystatechange事件注册监听器
		xmlHttpRequest.onreadystatechange = function(){
			if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status ==200){
				var text = xmlHttpRequest.responseText;//获取响应内容
				//将相应内容添加到h1
				var h1 = document.getElementById("h1");
				h1.innerHTML=text;
			}
		};
	};
};

响应内容为XML

	public void doGet(HttpServletRequest request,IOException {
		String xml = "<students>" +
				"<student number='ITCAST_1001'>" +
				"<name>zhangSan</name>" +
				"<age>18</age>" + 
				"<sex>male</sex>" +
				"</student>" +
				"</students>";
			
			response.setContentType("text/xml;charset=utf-8");
			response.getWriter().print(xml);
	}


window.onload = function(){
	var btn =document.getElementById("btn");
	btn.onclick = function(){
		//注册监听
		//1.得到XMLHttpRequest异步请求对象
		var xmlHttpRequest = createXMLHttpRequest();
		//2.打开与服务器的连接
		xmlHttpRequest.open("GET","<c:url value='/BServlet'/>",true);
		//3.发送请求
		xmlHttpRequest.send(null);//GET请求没有请求体,但是必须给null
		//4.给异步请求对象的onreadystatechange事件注册监听器
		xmlHttpRequest.onreadystatechange = function(){
			if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status ==200){
				var doc = xmlHttpRequest.responseXML;//获取响应内容
				// 处理浏览器的差异
				if(window.addEventListener) {
					number = ele.getElementsByTagName("number")[0].textContent;//其他浏览器
				} else {
					number = ele.getElementsByTagName("number")[0].text;//IE支持
				}
				if(window.addEventListener) {
					name = ele.getElementsByTagName("name")[0].textContent;//其他浏览器
				} else {
					name = ele.getElementsByTagName("name")[0].text;//IE支持
				}
				if(window.addEventListener) {
					age = ele.getElementsByTagName("age")[0].textContent;//其他浏览器
				} else {
					age = ele.getElementsByTagName("age")[0].text;//IE支持
				}
				if(window.addEventListener) {
					sex = ele.getElementsByTagName("sex")[0].textContent;//其他浏览器
				} else {
					sex = ele.getElementsByTagName("sex")[0].text;//IE支持
				}

				var text = number + "," + name + "," + age + "," + sex;
				
				//将相应内容添加到h1
				var h1 = document.getElementById("h1");
				h1.innerHTML=text;
			}
		};
	};
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读