这是第一个jsp页面的代码,可以正常进入AjaxServlet
var xmlHttpRequest=null;
//页面加载
window.onload=function(){
//获取按钮对象
var but=document.getElementById("login");
but.onclick=function(){
//处理ajax
//对浏览器判断
if (window.ActiveXOject) {
//IE
xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP);
}else{
xmlHttpRequest=new XMLHttpRequest();
}
//获取内容
var loginname=document.getElementById("loginname").value;
var upassword=document.getElementById("upassword").value;
var inputRand=document.getElementById("inputRand").value;
//打开链接
xmlHttpRequest.open("get","AjaxServlet?loginname="+loginname+"&upassword="+upassword+"&inputRand="+inputRand+"&type=1"+"&random="+new Date().getTime(),true);
//回调函数
xmlHttpRequest.onreadystatechange=AjaxCallBack;
//发送
xmlHttpRequest.send(null);
}
};
//创建回调函数
function AjaxCallBack(){
if (xmlHttpRequest.readyState==4) {
if (xmlHttpRequest.status==200) {
//读取后台回传的数据
var content=xmlHttpRequest.responseText;
var divObject=document.getElementById("resultdiv");
divObject.innerHTML=content;
if (content=="登录成功") {
window.location.href="index.jsp";
}
}
}
}
这是第二个jsp页面的代码,执行之后没有进入后台AjaxServlet,路径是没有错的
而且不光是进不了AjaxServlet,把URL改成随便的一个JSP页面或者Servlet也跳不过去
var xmlHttpRequest=null;
//页面加载
window.onload=function(){
//获取按钮对象
var but=document.getElementById("OK");
but.onclick=function(){
//处理ajax
//对浏览器判断
if (window.ActiveXOject) {
//IE
xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP);
}else{
xmlHttpRequest=new XMLHttpRequest();
}
//获取内容
var oldpassword=document.getElementById("oldpassword").value;
var newpassword=document.getElementById("newpassword").value;
var renewpassword=document.getElementById("renewpassword").value;
//打开链接
//alert("执行到这里");
xmlHttpRequest.open("get","../../AjaxServlet?oldpassword="+oldpassword+"&newpassword="+newpassword+"&renewpassword="+renewpassword+"&type=2",true);
//回调函数
xmlHttpRequest.onreadystatechange=AjaxCallBack;
//发送
xmlHttpRequest.send(null);
}
};
//创建回调函数
function AjaxCallBack(){
if (xmlHttpRequest.readyState==4) {
if (xmlHttpRequest.status==200) {
//读取后台回传的数据
var content=xmlHttpRequest.responseText;
var divObject=document.getElementById("resultdiv");
divObject.innerHTML=content;
}
}
}
我是初学者,如果是写法不对,想请教一下怎样在一个项目里面的多个JSP页面实现异步处理
if (xmlHttpRequest.status==200) {}
和if (xmlHttpRequest.readyState==4) {}
这两个判断写反了,望采纳!
你还没有发送请求就回调函数了,这写法的顺序不对,应该是首先与服务器获得连接,然后再发送请求,然后获取响应结果。还有路径那里拼接字符串容易出错,个人建议使用
c标签。类似 xmlhttprequest.open("GET","",true);这样的写法。路径不容易出错。给你个例子,你可以参考一下
xmlHttpRequest.open("get","AjaxServlet?loginname="+loginname+"&upassword="+upassword+"&inputRand="+inputRand+"&type=1"+"&random="+new Date().getTime(),true);