一、认识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开发草考文档,方便快捷1. AJAX介绍AJAX是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接受数据的技术。2. AJAX实例AJAX可以用来创建更多交互式的网络应用程序。3. AJAX源...
AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX
**Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,因为它...
**Ajax 概述** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是利用JavaScript与服务器进行异步数据交换,通过XML或者JSON格式传输数据,使得用户...
**AjaxRequest(Ajax使用包)** Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。AjaxRequest是实现Ajax功能的一个工具包,它...
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
在IT行业中,jQuery和Ajax是两个非常重要的技术,它们在构建动态、交互性强的Web应用程序时发挥着关键作用。jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。Ajax...
Java AJAX(Asynchronous JavaScript and XML)分页与JSP(JavaServer Pages)相结合,可以提供无需刷新整个页面即可动态加载更多内容的能力,提高用户体验。本教程将深入探讨如何使用AJAX、JavaScript以及MySQL...
**Ajax 教程** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验,尤其是在数据...
使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤
**Ajax Interceptor:深入理解与应用** Ajax Interceptor 是一款专为谷歌浏览器(Chrome)设计的插件,它允许开发者在Ajax请求发送后和响应返回前进行干预,从而实现对AJAX请求数据的修改。这款插件对于前端开发、...
ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础...
标题中的“php+ajax例子”指的是使用PHP服务器端语言与AJAX(Asynchronous JavaScript and XML)客户端技术结合的示例应用。在Web开发中,PHP通常用于处理服务器端逻辑,而AJAX则允许网页在不刷新整个页面的情况下,...
**Ajax+JSON 实例详解** 在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术已经成为提升用户体验的重要工具,它允许网页在不刷新整个页面的情况下与服务器进行数据交互。结合JSON(JavaScript Object ...
Ajax快车道 Ajax快车道 Ajax快车道 Ajax快车道
ajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用...
**ASP.NET AJAX 全面解析** ASP.NET AJAX(Asynchronous JavaScript and XML)是微软为.NET Framework提供的一种技术,用于创建富交互式、响应快速的Web应用程序。它将JavaScript库(MicrosoftAjax.js)与服务器端...
掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web 响应 掌握 Ajax第 5 部分-操纵 DOM ...
功能基础,增,显,分页。适合初学者。 ajax+.net小例子 ajax+C#示例 ajax+.net 示例ajax+.net小例子 ajax+C#示例 ajax+.net 示例ajax+.net小例子 ajax+C#示例 ajax+.net 示例