您的位置:首页 > 理论基础 > 计算机网络

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

2017-04-12 15:59 756 查看
---------------body
<td width="80%" height="26" valign="bottom" class="font13">
<div align="right">
<a href="javaScript:saveMissiveNo();" target="_self">保存</a>
 | 
<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="数据加载中……";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: