<script type="text/javascript">
/*
ajax 的几个步骤:
1、建立XmlHttpRequest对象
2、设置回调函数
3、使用Open方法建立与服务器的连接
4、向服务器发送数据
5、在回调函数中针对不同响应状态进行处理
*/
var xmlHttp;
function createXMLHttpRequest(){ //1建立XmlHttpRequest对象
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlHttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function showMes(){ //2设置回调函数
if(xmlHttp.readyState==4){ //数据接收完成并可以使用
if(xmlHttp.status==200){ //http状态OK
//5、在回调函数中针对不同响应状态进行处理
alert(xmlHttp.responseText); //服务器的响应内容
}else{
alert("出错:"+xmlHttp.statusText); //HTTP状态码对应的文本
}
}
}
/**
//这是GET方法传送
function getMes(){
createXMLHttpRequest();
var txt = document.getElementById("txt").value;
var url="servlet/AjaxServlet?txt="+txt;
url = encodeURI(url); //转换码后再传输
xmlHttp.open("GET",url,true); //3使用Open方法建立与服务器的连接
xmlHttp.onreadystatechange=showMes;
xmlHttp.send(null); //4向服务器发送数据
}
*/
/**
*这是post方法
*/
function postMes(){
createXMLHttpRequest();
var url = "servlet/RegisterServlet";
var params="username="+$('#username').val()+"&password="+$('#password').val()+
"&confirmpassword="+$('#confirmpassword').val()+
"&realname="+$('#realname').val()+
"&telephone="+$('#telephone').val()+
"&email="+$('#email').val()+
"&QQ="+$('#QQ').val()+
"&identy="+$('input[name="identy"]:checked').val();
alert(url);
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlHttp.send(params);
xmlHttp.onreadystatechange = showMes;
}
</script>
这段代码从其他地方搬过来时,只改动了url和params
1、调试 js
2、调试后台程序
反正就是调试、先找到具体哪里出错误...
晕哦,换jquery吧,几行代码就搞定你这么多的东西了。
var url = "servlet/RegisterServlet"; 改成 var url = "/servlet/RegisterServlet"; 试下,少了个斜杠吧
先确定程序 走到哪了,没有走到服务端的话,就是前端POST那段代码的问题,走到服务端的话,那就是服务端的问题,只要学会用服务端DEBUG模式,和浏览器端的调试工具这些都不是大问题。
那个点出现 not found
如果是后台返回错误的话
应该检查访问的url 和 后台代码
alert(url);
这个url 直接在浏览器地址栏输入 可以直接看返回数据