`
ll_feng
  • 浏览: 387283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ajax的本来面目

    博客分类:
  • ajax
阅读更多
一、认识XMLHttpRequest
XMLHttpRequest最早是在IE5中以ActiveX组件的形式实现的,开始只能在IE中使用,后来被广泛采用而成为事实上的标准。

二、属性
onreadystatechange  每个状态改变时都会触发这个事件处理器,通常会调用一个javascript函数
readState  请求的状态。有5个可取值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成
responseText  服务器的响应,表示为一个串
responseXML   服务器的响应,表示为xml。这个对象可以解析为一个DOM对象
status        服务器的HTTP状态码(200对应OK,404对应Not Found等等)
statusText    HTTP状态码的相应文本(OK或Not Found等等)

三、方法
abort() 停止当前请求
getAllResponseHeaders()  把HTTP请求的所有响应首部作为健/值对返回
getResponseHeader("header")   返回指定首部的串值
open("method","url")   建立对服务器的调用。method参数可以是post、get、put.url参数可以是相对URL或绝对URL.这个方法还包括3个可选参数。
send(content)   向服务器发送请求
setRequestHeader("header","value")   把指定首部设置为提供的值,在设置任何首部之前必须先调用open()

四、发送请求参数
<html>
<head>
<title>发送请求参数</tile>
<script>
	/**
	 * 定义XMLHttpResuest对象
	 */
	var xhr;
	function getXHR(){
		if(window.ActiveXObject){
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}else if(window.XMLHttpRequest){
			xhr = new XMLHttpRequest();	
		}
	}
	
	/**
	 * 获取查询参数
	 */
	function getQueryString(){
		var name = document.getElementById("name").value;	
		var pwd = document.getElementById("pwd").value;
		var queryString = "name="+name+"&pwd="+pwd;
		return queryString;
	}	
	
	/**
	 * 以get方式提交请求
	 */
	function doRequestByGet(){
		xhr = getXHR();
		var queryString = "getAndPostExample?";
		queryString = queryString+getQueryString()+"&time="+new Date().getTime();
		xhr.onreadystatechange = stateChangeHandle;
		xhr.open("GET",queryString,true);
		xhr.send(null);	
	}
	
	/**
	 * 以post方式提交请求
	 */
	function doRequestByPost(){
		xhr = getXHR();
		var url="getAndPostExample?time="+new Date().getTime();
		var queryString = getQueryString();
		xhr.onreadystatechange = stateChangeHandle;
		xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
		xhr.send(queryString);	
	}
	
	/**
	 * 监听提交状态,响应服务器返回结果
	 */
	function stateChangeHandle(){
		if(xhr.readyState == 4){
			if(xhr.status == 200){
				parseResults();	
			}	
		}	
	}
	
	/**
	 * 接收并处理响应结果,
	 */
	function parseResults(){
		var responseDiv = document.getElementById("serverResponse");
		if(responseDiv.hasChildNodes()){
			responseDiv.removeChild(0);	
		}	
		
		var responseText = document.createTextNode(xhr.responseText);
		responseDiv.appendChild(responseText);
	}
</script>
</head>

<body>
<h1>请输入姓名和密码:</h1>
姓名:<input type="text" id="name"/>
密码:<input type="text"	id="pwd"/>

<form action="#">
<input type="button" value="Get方式提交" onclick="doRequestByGet()"/>
<input type="button" value="Post方式提交" onclick="doRequestByPost()"/>
</form>

<div id="serverResponse"></div>
</body>
</html>


五、服务端响应
以servlet为例:
public class GetAndPostExample extends HttpServlet{
	
	protected void processRequest(HttpServletRequest request,HttpServletResponse response,string method) throws ServletExcpetion,IOException{
		response.setContentType("text/xml,charset=UTF-8");
		response.setHeader("Cache-Control","no-cache");
		String name = request.getParameter("name");
		String pwd =  request.getParameter("pwd");
		String responseTxt = "你好!"+name+",你的提交方式是:"+Method;
		
		PrintWriter out = response.getWriter();
		out.println(responseTxt);
		out.close();
	}
	
	protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
		processRequest(request,response,"GET");
	}
	
	protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
		processRequest(request,response,"POST");
	}
}
分享到:
评论

相关推荐

    AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX

    AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX

    ajax控件ajax控件ajax控件ajax控件

    ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件

    ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解

    ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解

    ajax特效ajax特效ajax特效

    ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效

    ajax控件ajax控件

    ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件...

    ajax代码 ajax代码

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,因为它...

    ajax面试题ajax面试题

    关于Ajax的常见面试题 1,Ajax和javascript的区别? javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。 Javascript是由...

    AJAX实战AJAX实战

    AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战

    深入浅出Ajax(Head Rush Ajax) 源码 书中代码

    **Ajax 概述** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是利用JavaScript与服务器进行异步数据交换,通过XML或者JSON格式传输数据,使得用户...

    Ajax从入门到精通.pdf

    Ajax从入门到精通.pdf 本书籍旨在深入浅出地介绍 Ajax 技术,从基础知识到高级应用,全面覆盖 Ajax 的核心概念、技术原理、实现方法和实践应用。书籍的主要内容包括: 1. Ajax 概述:本书首先介绍了 Ajax 的概念、...

    AjaxRequest(Ajax使用包)

    **AjaxRequest(Ajax使用包)** Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。AjaxRequest是实现Ajax功能的一个工具包,它...

    ajax文档ajax文档

    AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML)。  国 [使用ajax 构建应用程序] 使用ajax 构建应用程序 内翻译常为“阿贾克斯”和阿贾克斯足球队同音。Web应用的交互如Flickr,Backpack和...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...

    jquery+ajax例子

    在IT行业中,jQuery和Ajax是两个非常重要的技术,它们在构建动态、交互性强的Web应用程序时发挥着关键作用。jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。Ajax...

    Java Ajax分页,jsp ajax分页

    Java AJAX(Asynchronous JavaScript and XML)分页与JSP(JavaServer Pages)相结合,可以提供无需刷新整个页面即可动态加载更多内容的能力,提高用户体验。本教程将深入探讨如何使用AJAX、JavaScript以及MySQL...

    ajax理论说明ajax理论说明ajax理论说明

    ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论说明ajax理论...

    ajax教程

    **Ajax 教程** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验,尤其是在数据...

    Ajax(Ajax使用js包)

    使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤

    php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页

    php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax分页php+ajax...

Global site tag (gtag.js) - Google Analytics