2 u010837612 u010837612 于 2014.12.04 22:03 提问

求大神解决AJAX问题,小弟快哭了。。。。

注册界面的表单验证,使用ajax post传输,可是总是返回not found。同样的代码我用于做其他的功能都没有问题。求大神帮忙啊,搞了一晚上了老是搞不定

 <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>

9个回答

u010837612
u010837612   2014.12.04 22:04

这段代码从其他地方搬过来时,只改动了url和params

u010837612
u010837612   2014.12.04 22:10

Syolin
Syolin   2014.12.04 22:58

1、调试 js
2、调试后台程序

反正就是调试、先找到具体哪里出错误...

miw__
miw__   2014.12.05 00:10

晕哦,换jquery吧,几行代码就搞定你这么多的东西了。

Prolovecui
Prolovecui   2014.12.05 09:02

的确,用jquery来做ajaxd的post传递,方便很多!

czw2010
czw2010   2014.12.05 09:42

var url = "servlet/RegisterServlet"; 改成 var url = "/servlet/RegisterServlet"; 试下,少了个斜杠吧

school11
school11   2014.12.05 10:14

先确定程序 走到哪了,没有走到服务端的话,就是前端POST那段代码的问题,走到服务端的话,那就是服务端的问题,只要学会用服务端DEBUG模式,和浏览器端的调试工具这些都不是大问题。

CSDNJavaLiwei
CSDNJavaLiwei   2014.12.05 17:23

用jquery或者DWR框架,非常简单就搞定了。

KK3K2005
KK3K2005   Rxr 2014.12.08 13:47

那个点出现 not found

如果是后台返回错误的话
应该检查访问的url 和 后台代码

alert(url);

这个url 直接在浏览器地址栏输入 可以直接看返回数据

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!