------------------------ajax1.html--------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<script type="text/javascript" src="jslib/verifyown.js"></script>
</head>
<body>
用户名: <input type="text" id="userName" />
<input type="button" value="提交" onclick='verify()' />
<div id="result" ondblclick='hehe()'>aaa</div>
</body>
</html>
-----------------------verifyown.js----------------------------------
//用户名校验的方法
//这个方法将使用XMLHTTPRequest对象来进行AJAX的异步交互
var xmlhttp;
function verify(){
//1. 使用dom的方式获取文本框中的值
//getElementById("userName")是dom中获取元素节点的一种方法,一个元素节点对应HTML页面中的一个标签,
//如<input> 。value可以获取一个元素节点的value属性值
var userName= document.getElementById("userName").value;
//2.创建XMLHttprequest对象
//这是XMLHttprequest对象使用中最复杂的一步
//需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
if(window.XMLHttpRequest) {
//针对firefox, Mozillar,Opera,Safari,IE7,IE8
xmlhttp=new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if(xmlhttp.overrideMimeType)
{
xmlhttp.overrideMimeType("text/xml");
}
} else if(window.ActiveXObject){
//针对ie6,ie5,ie5.5
//两个可以用于创建XMLHTTPRequest对象的控件名称,保存在一个js的数组中
//排在前面的版本较新
var activexName=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i=0;i<activexName.length;i++)
{
try{
//取出一个控件名进行创建,如果创建成功就终止循环
//如果创建失败,会抛出异常,然后可以继续循环,继续尝试创建
xmlhttp=new ActiveXObject(activexName[i]);
break;
} catch(e){
}
}
}
//确认XMLHTTPRequest对象创建成功
if(!xmlhttp){
alert("XMLHttpRequest对象创建失败");
} else{
// alert(xmlhttp.readyState);
}
//2.注册回调函数
//注册回调函数时,只需要函数名,不要回括号
//我们需要将函数名注册,如果加上括号,就会把函数的返回值注册上,这是错误的
xmlhttp.onreadystatechange=callback;
//3.设置连接信息
//第一个参数表示http的请求方式,支持所有http的请求方式,主要使用get和post
//第三个参数表示采用异步还是同步方式,true表示异步
xmlhttp.open("GET","AJAXServer?name="+userName,true);
//4.发送数据,开始 和服务器进行交互
//同步方式下,send这句话会在服务器段数据回来后才执行完
//异步方式下,send这句话会立即完成执行
xmlhttp.send(null);
}
//回调函数
function callback(){
alert(xmlhttp.readyState);
//5.接收响应数据
//判断对象的状态是交互完成
if(xmlhttp.readyState==4){
//判断http的交互是否成功
if(xmlhttp.status==200){
//获取服务器端返回的数据
//获取服务器端输出的纯文本数据
var responseText=xmlhttp.responseText;
//将数据显示在页面上
var divNode=document.getElementById("result");
//设置元素节点中的html内容
divNode.innerHTML=responseText;
}
}
}
-------------------------AJAXServer-------------------------------
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
/**
* Created by IntelliJ IDEA.
* User: ming
* Date: 2008-6-11
* Time: 11:11:34
* To change this template use File | Settings | File Templates.
*/
public class AJAXServer extends HttpServlet{
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
doGet(httpServletRequest, httpServletResponse);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try{
// request.setCharacterEncoding("UTF-8");
// response.setContentType("text/html;charset=gb18030");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//1.取参数
String old = request.getParameter("name");
//String name = new String(old.getBytes("iso8859-1"),"UTF-8");
String name = URLDecoder.decode(old,"UTF-8");
//2.检查参数是否有问题
if(old == null || old.length() == 0){
out.println("用户名不能为空");
} else{
// String name = URLDecoder.decode(old,"UTF-8");
// byte[] by = old.getBytes("ISO8859-1");
// String name = new String(by,"utf-8");
// String name = URLDecoder.decode(old,"utf-8");
//3.校验操作
// String name = old;
if(name.equals("wangxingkui")){
//4。和传统应用不同之处。这一步需要将用户感兴趣的数据返回给页面段,而不是将一个新的页面发送给用户
//写法没有变化,本质发生了改变
out.println("用户名[" + name + "]已经存在,请使用其他用户名, ");
} else{
out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " );
out.println("<br/>" );
out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " );
}
}
} catch(Exception e){
e.printStackTrace();
}
}
}
分享到:
相关推荐
在本案例中,我们讨论的主题是如何利用AJAX(异步JavaScript和XML)技术来实现在网页上对图片进行拖放操作,同时兼容IE和Firefox两种主流浏览器。 首先,我们需要了解AJAX的基本概念。AJAX是一种在不重新加载整个...
这篇博文主要探讨了如何解决Ajax在IE和Firefox上的兼容性问题。 首先,让我们了解一下Ajax的基本原理。Ajax的核心是XMLHttpRequest对象,它允许JavaScript在不刷新整个页面的情况下与服务器进行异步通信。在发送...
现代浏览器(如IE7+、Firefox、Chrome、Safari、Opera)都内置了这个对象。而早期的IE浏览器,比如IE5和IE6,使用ActiveXObject来实现类似的功能。 为了创建一个兼容各浏览器的XMLHttpRequest对象,我们可以使用...
首先,Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是JavaScript的XMLHttpRequest对象,它允许JavaScript在后台与服务器交换数据并更新部分网页...
但需要注意,E4X不是所有浏览器都支持,主要在Firefox中使用。 3. Ajax中的数据交换: - 使用XML:在早期的Ajax应用中,XML常作为数据交换格式,可以通过XMLHttpRequest的responseXML属性获取XML数据,然后使用DOM...
开发者工具如Chrome DevTools和Firefox Developer Tools提供了AJAX请求的调试功能,可以查看请求头、响应头、请求体和响应体等信息。 总的来说,AJAX通过提供异步数据交换的能力,极大地增强了Web应用程序的功能性...
browser = Watir::Browser.new :ie # 或者 :firefox, :chrome 等 browser.goto "http://ajax.example.com" # 模拟用户操作,例如点击按钮触发Ajax请求 button = browser.button(:id => 'load_data') button....
由于不同浏览器对XMLHttpRequest对象的支持程度不同,我们需要编写兼容代码来确保在所有主流浏览器(如IE、Firefox、Chrome、Safari等)中都能正常工作。以下是一些常见的兼容性问题及解决方案: #### 2.1 创建...
- 在Firefox和其他非IE浏览器中,可以通过`window.XMLHttpRequest`来创建请求对象:`var xhr = new XMLHttpRequest();` - 在Internet Explorer中,则需要通过`window.ActiveXObject`创建,具体版本可能会影响创建...
当需要在Firefox浏览器环境下处理XML文档时,开发者通常会使用XML DOM(Document Object Model)来解析和操作XML。本文将详细讲解如何在Firefox下利用XML DOM解析XML文档。 首先,理解XML DOM的概念是至关重要的。...
if (window.XMLHttpRequest) { // Firefox, Chrome, IE7+, Safari xhr = new XMLHttpRequest(); } else { // IE6, IE5 xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function...
Ajax最初在Internet Explorer 5中引入,但真正的广泛支持始于Mozilla、Firefox和Safari。为了实现跨浏览器的Ajax,开发人员通常会使用一个兼容性的库,如jQuery或Prototype,它们提供了统一的API来处理不同浏览器间...
在这个例子中,我们将探讨如何使用AJAX来读取XML数据,特别关注在Chrome和Firefox浏览器中的实现。 XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,具有良好的结构和可读性。在JavaScript...
在IE5中,XHR是通过ActiveX对象MSXML实现的,而在IE7及以上版本以及Firefox、Chrome、Safari等现代浏览器中,它们支持原生的XHR对象。创建XHR对象的兼容代码如下: ```javascript var xhr; if (window....
打开Chrome或Firefox的开发者工具,切换到网络(Network)面板,可以看到所有的HTTP请求,包括Ajax请求。这里我们可以查看请求的详细信息,如请求头、响应头、请求体和响应数据,以及状态码,从而判断请求是否成功。...
// 对于现代浏览器(Firefox, Chrome, Safari, etc.) xhr = new XMLHttpRequest(); } else { // 对于旧版IE (IE5, IE6, IE7, IE8) xhr = new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } ``` ###...
总的来说,解决“Firefox 3中`onreadystatechange`事件不会触发”的问题需要深入理解XMLHttpRequest的工作原理,以及浏览器的兼容性和扩展可能带来的影响。通过细致的代码审查、使用开发者工具和进行兼容性测试,...
1. 创建XMLHttpRequest对象:所有现代浏览器(IE7+,Firefox,Chrome,Safari等)都内置了XMLHttpRequest对象,用于处理异步请求。 2. 发起HTTP请求:使用XMLHttpRequest对象的open()方法设置请求类型(GET或POST)...
// 对于现代浏览器(IE7+, Firefox, Chrome, Safari, Opera) xmlHttp = new XMLHttpRequest(); } catch (e) { try { // 对于旧版本的Internet Explorer(IE6, IE5) xmlHttp = new ActiveXObject("Msxml2....
1. **创建XMLHttpRequest对象**:所有现代浏览器(包括IE7+、Firefox、Chrome、Safari和Opera)都内置了XMLHttpRequest对象,用于处理Ajax请求。开发者可以通过`new XMLHttpRequest()`来创建一个实例。 2. **初始化...