运用Ajax的xmlHttpRequest对象异步与后台交互并提示交互结果

前端之家收集整理的这篇文章主要介绍了运用Ajax的xmlHttpRequest对象异步与后台交互并提示交互结果前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
---------------body
<td width="80%" height="26" valign="bottom" class="font13">
<div align="right">
<a href="javaScript:saveMissiveNo();" target="_self">保存</a>
&nbsp;|&nbsp;
<a href="<%=path%>/pages/missiveManage/MissiveNoManager.jsp"
						target="_parent">返回</a>
</div>
</td>
-------------action/session
						// response.setContentType("text/xml;charset=utf-8");
						   PrintWriter out=null;
						   try {
							out = response.getWriter();
						   } catch (IOException e1) {
						 	e1.printStackTrace();
						   }
						   try{
						    String userName=request.getParameter("userName");
						    if ("ss".equals(userName)) {
								out.print("是");
							} else {
								out.print("否");
							}
						   }catch(Exception e){
						    e.printStackTrace();
						   }
-------------js
function saveMissiveNo(){
var isTrue = true;
var flag=0;
var isDepartment=1;//所属类型:部门
var isYes=1;//是否:是新公文类型
var typeScope=document.getElementById("typeScope").value;//公司:不提示选择部门
var orgname=document.getElementById("orgname").value;
var orgid=document.getElementById("orgid").value;
var describe=document.getElementById("describe").value;
var dealType=document.getElementById("dealType").value;
var year=document.getElementById("year").value;
var arr="";//数组无法直接传,用传递字符串的方法
if(typeScope==0){isDepartment=0;}
if(document.getElementById("dept").style.display=="block"){
if(document.getElementById("old").checked){ isYes=0;}
}
//js非空判断
if (typeScope == -1) {
    alert( "请选择所属类型!" );
    document.forms[0].typeScope.focus();
   isTrue=false; 
   return; 
}
if(document.getElementById("good").style.display=="block"){
if(document.getElementById("pop").value==1){
var es=document.getElementsByName("missiveType");
if(es.length>0) {
 for (i = 0; i < es.length; i++) {
		if (es[i].checked==true) {
			flag=1;
			break;
		} else {
			flag=0; 
		}
	}
		if(flag==0){
		alert('请至少选择一个公文类别');
		document.forms[0].mm.focus();
		isTrue=false;
		return;
		}
  }
for (i = 0; i < es.length; i++) {
if(es[i].checked){
arr=arr+es[i].value+",";
}
}
}
}
if(document.getElementById("good").style.display=="block"&&document.getElementById("pop").value==-1){
 alert("公文类别无数据,无法保存");
 isTrue=false; 
 return;
 }
if(document.getElementById("div").style.display=="block"&&document.forms[0].orgname.value==""&&typeScope!="0"){
    alert('请选择部门');
    document.forms[0].orgname.focus();
   isTrue=false; 
   return;
  }
if(document.getElementById("news").checked==true||document.getElementById("comp").style.display=="block"){
if(document.getElementById("pop").value==1&&document.getElementById("div5").style.display=="block"){
if(document.getElementById("describe").value == ""||document.getElementById("describe").value ==null){
		alert('固定描述不能为空');
		document.forms[0].describe.focus();
		isTrue=false;
		return; 
		}
}
}
if(document.getElementById("news").checked==true||document.getElementById("comp").style.display=="block"){
if(document.getElementById("pop").value==1&&document.getElementById("div3").style.display=="block"){
if(document.getElementById("dealType").value == ""||document.getElementById("dealType").value ==null){
		alert('请选择处理类型');
		document.forms[0].dealType.focus();
		isTrue=false;
		return; 
		}
}
}
if(isTrue){
 saveMissiveNoAjax(isDepartment,orgname,orgid,isYes,arr,dealType,year,describe);
 //新增成功之后重新返回addMissiveNo.jsp页面
}
}
var xmlHttp;//放在外面,照顾回调函数
function createXDOM(){//创建xmlhttprequest
 try
    {
    xmlHttp=new XMLHttpRequest();
    }
 catch (e)
    {
   try
      {
     xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
   catch (e)
      {

      try
         {
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
      catch (e)
         {
         alert("您的浏览器不支持XMLHTTP对象!");
         return false;
         }
      }
    }
}

function saveMissiveNoAjax(x,y,z,o,p,q,r,s){
var userName=document.getElementById("userName").value;
var url="<%=path%>/pages/MissiveNoManager/index.do?doaction=saveMissiveNo&isDepartment="+x+"&orgname="+y+"&orgid="+z+"&isYes="+o+"&arr="+p+"&dealType="+q+"&year="+r+"&describe="+s+"&userName="+userName;
createXDOM();
if (xmlHttp){//成功创建xmlhttprequest
   xmlHttp.onreadystatechange=callBack;
   xmlHttp.open("POST",url,true);//与服务端建立连接(请求方式post或get,地址,true表示异步)
   xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//传递数据的方法同样有GET和POST两种,但是当方法为POST时下面的一句话就必须写
   xmlHttp.send(null);//发送请求
  } 
}
function callBack(){//回调函数
if(xmlHttp.readyState==4){//请求状态为4表示成功
    if(xmlHttp.status==200){//http状态200表示OK
   if(xmlHttp.responseText=='Y'){alert("保存成功!");
    document.forms[0].submit();
   }
   else {alert("保存失败!");
   document.forms[0].submit();
   }
    }
    else{//http返回状态失败
    alert("服务端返回状态" + xmlHttp.statusText);
    }
}
else{//请求状态还没有成功,页面等待
    document.getElementById("resultMess").innerHTML="数据加载中……";
}
}


原文链接:https://www.f2er.com/ajax/161237.html

猜你在找的Ajax相关文章