ajax说简单点就是XMLHttpRequet对象(XHR),在使用前必须用JavaScript创建一个XMLHttpRequest对象;
因为XMLHttpRequest不是一个W3C标准;所以不同的浏览器内实现的方法也不一样?
创建XMLHttpRequest对象一个实例;
XMLHttpRequest典型方法:
abort()-----------------------------------------停止当前请求;
getAllResponseHeaders()-----------------把HTTP请求的所有相应首部作为键/值对返回
getResponseHeader("header")----------返回指定首部的串值
open("method","url","true")----------------建立对服务器的调用,method可以是get,post或put,url参数可以是相对url或绝对url.true表示使用异步请求,flase这为同步;
send(content)--------------------------------向服务器发送请求;
setRequestHeader("header","value")---把指定首部设置为所提供的值,在设置任何首部之间必须先调用open();
XMLHttpRequest属性:
onreadystatechange-----------------------每个状态改变时都会触发这个事件处理器,通常会调用一个javascript函数;
readyState-----------------------------------请求的状态.有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
responseText--------------------------------服务器的响应,表示为一串
responseXML--------------------------------服务器的响应,表示为XML.这个对象可以解析为一个DOM对象;
status------------------------------------------服务器的HTTP状态码(200对应OK,404对应Not Found,等等)
stausText-------------------------------------HTTP状态码的相应文本(OK或Not Found,等等)
login用到的ajax
因为XMLHttpRequest不是一个W3C标准;所以不同的浏览器内实现的方法也不一样?
创建XMLHttpRequest对象一个实例;
js 代码
- var xmlHttp
- function createXMLHttpRequest(){
- if (window.ActiveXOBbject){
- xmlHtto = new ActiveXObject("Microsoft.XMLHTTP");
- }
- alse if (window.XMLHttpRequest){
- xmlHttp = new XMLHttpRequest();
- }
- }
XMLHttpRequest典型方法:
abort()-----------------------------------------停止当前请求;
getAllResponseHeaders()-----------------把HTTP请求的所有相应首部作为键/值对返回
getResponseHeader("header")----------返回指定首部的串值
open("method","url","true")----------------建立对服务器的调用,method可以是get,post或put,url参数可以是相对url或绝对url.true表示使用异步请求,flase这为同步;
send(content)--------------------------------向服务器发送请求;
setRequestHeader("header","value")---把指定首部设置为所提供的值,在设置任何首部之间必须先调用open();
XMLHttpRequest属性:
onreadystatechange-----------------------每个状态改变时都会触发这个事件处理器,通常会调用一个javascript函数;
readyState-----------------------------------请求的状态.有5个可取值:0 = 未初始化,1 = 正在加载,2 = 已加载,3 = 交互中,4 = 完成
responseText--------------------------------服务器的响应,表示为一串
responseXML--------------------------------服务器的响应,表示为XML.这个对象可以解析为一个DOM对象;
status------------------------------------------服务器的HTTP状态码(200对应OK,404对应Not Found,等等)
stausText-------------------------------------HTTP状态码的相应文本(OK或Not Found,等等)
login用到的ajax
js 代码
- function loginI(){
- var userName=document.getElementById("userName").value;
- var password=document.getElementById("password").value;
- var loading=document.getElementById("loading");
- if(userName==""){
- alert("请输入用户名");
- return ;
- }
- if(password==""){
- alert("请输入密码");
- return ;
- }
- var ajax=null;
- try{
- ajax=new ActiveXObject("Msxml2.XMLHTTP");
- }catch(e){
- try{
- ajax=new ActiveXObject("Microsoft.XMLHTTP");
- }catch(e){
- ajax=null;
- }
- }
- if (ajax==null && typeof XMLHttpRequest!='undefined') {
- ajax = new XMLHttpRequest();
- }
- var req="./login.action?userName="+userName+"&password="+password;
- var temp=loading.innerHTML;
- loading.innerHTML='用户名密码核对中...';
- ajax.onreadystatechange=function(){
- if(ajax.readyState==4){
- loading.innerHTML="";
- var authInfo=ajax.responseText;
- switch(authInfo){
- case "nouser":
- loading.innerHTML=temp;
- alert("无此用户,请检查后重新输入");
- break;
- case "userlock":
- loading.innerHTML=temp;
- alert("账号已锁定,请通过电子邮件激活帐号");
- break;
- case "passerror":
- loading.innerHTML=temp;
- alert("密码错误,连续错5次,帐号将被锁定!");
- break;
- case "success":
- location.reload();
- break;
- case "checking":
- loading.innerHTML="您的申请仍在审核中,请耐心等待。";
- break;
- case "pass":
- var tmpArray = location.href.split("?");
- if (tmpArray.length==2) {
- window.location.href=decodeURIComponent(tmpArray[1]);}
- else
- location.reload();
- break;
- case "refuse":
- loading.innerHTML="很抱歉,您的申请未通过审核";
- break;
- case "unspreader":
- loading.innerHTML="您还不是推广员,我们期待您的加入";
- break;
- case "maxfail":
- loading.innerHTML=temp;
- alert("密码多次输错,帐户已被锁定,请通过电子邮件激活帐号");
- break;
- default:
- loading.innerHTML=temp;
- alert("暂时无法登录,请稍候再试")
- break;
- }
- }
- }
- ajax.open("POST",req,true);
- ajax.send("");
- }