Ajax常用代码总结
马上要用到Ajax了,先把常用到的代码总结一下:
一。最常用到的代码
----------------------------------------------------------------------------
<script>
//设一个变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.XMLHttpRequest){ //Mozilla
XMLHttpReq=new XMLHttpRequest();
}
//否则我们创建windows的ActiveXObject对象
else if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
XMLHttpReq.setRequestHeader("Content-Type","text/xml");
XMLHttpReq.setRequestHeader("Content-Type","GBK");
}catch(e){}
}
}
}
//发送请求函数
function send(url){
createXMLHttpRequest();
XMLHttpReq.open("GET",url,true);
XMLHttpReq.onreadystatechange=proce; //指定响应的函数
XMLHttpReq.send(null); //发送请求
}
//处理的函数,如果请求状态成功,那么我们就得到其中的值,
function proce(){
if(XMLHttpReq.readyState==4){ //对象状态
if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息
var res=XMLHttpReq.responseXML.getElementsByTagName('aaa')[0].firstChild.data;
document.all['companyname'].value='此名已被注册!!!';
window.alert(res);
}else{
window.alert("所请求的页面有异常");
}
}
}
//身份验证
function check(value){
var companyname=document.all['companyname'].value;
if(companyname==""){
alert("请输入公司名");
return false;
}
else{
send('CheckCompanyNameServlet?companyname='+companyname);//在这里发送的url网址
}
}
</script>
-----------------------------------------------------------------------------------------
二.上面的是产生了我们要调用Ajax的基本对象,以及发送的网址,url等函数
那我们怎么样在网页中应用呢?
代码如下:Struts的应用
--------------------------------------------------------------------
<html:text property="companyname" onblur="check(this.value)"/>
---------------------------------------------------------------------
三.最后Servlet里面怎么写的呢?
----------------------------------------------
request.setCharacterEncoding("GBK");
response.setContentType("text/xml; charset=GBK");
response.setHeader("Cache-Control","no-cache");
//得到公司名称
String companyname=request.getParameter("companyname");
//对公司名称进行相应的操作
PartnerCtrl ctrl=new PartnerCtrl();
boolean flag=ctrl.hasPartner(companyname);
//得到输出对象
PrintWriter out=response.getWriter();
//开始输出流
out.println("<pront>");
if(flag){
out.println("<aaa>"+"This name had been used!"+"</aaa>");
}
out.println("</pront>");
out.close();
-----------------------------------------------
学习的过程中发现几点:
1 url不能使用其他的domain,比如我用了http://www.xiaojb.com/xxx.html,结果提示没有权限使用XMLHttpRequest.open
2 XMLHttpRequest.send()必须有参数,如果没有可以使用XMLHttpRequest.send(null);
3 XMLHttpRequest.open(method,url,flag)中如果flag为false,则不调用XMLHttpRequest.onreadystatechange()
4 POST的方法是XMLHttpRequest.open(’POST’,url,true’),XMLHttpRequest.send(”username=xxx”);