主页 index.html 
<div align="center">
        用户类型&nbsp;&nbsp;
        <select id="usertype">
        <option value="user">普通用户</option>
        <option value="admin">管理员</option>
        </select>
        <br/>
        用户&nbsp;&nbsp;
        <input type="text" id="username"/>
        <br/>
        密码&nbsp;&nbsp;
        <input type="password" id="password"/>
    </div>
    <div id="result" align="center"></div>
    <div align="center">
        <span><a href="#" onclick="verify()">登录</a></span>&nbsp;&nbsp;&nbsp;&nbsp;
        <span><a href="">新用户?来注册</a></span>
    </div>
</div>check.jsp在本例中是验证用户和密码的。如果验证成功了,则   out.println("1"); 然后在verify.js的verify()中 
function verify(){
    $.post("check.jsp",
           {usertype:$("#usertype").val(), username:$("#username").val(), password:$("#password").val()},
           function(data){
               if(data == "1"){
                   location.href="user.jsp";
               }else{
                   $("#result").html(data);
               }
           }
    );
}
可以总是不成功,如果验证用户和密码成功了,则应该跳转到user.jsp,但是它仍然在id为result的div里显示“1”
不知道怎么回事

解决方案 »

  1.   

               function(data){
                   alert(data);//输出来看看不就知道什么原因了
                   if(data == "1"){
                       location.href="user.jsp";
                   }else{
                       $("#result").html(data);
                   }
               }
      

  2.   


    alert(data);
    是 1
    是不是数据格式的问题,导致 if(data == "1")判断不出来?
      

  3.   

    试试看 if((data + "") == "1")
      

  4.   

    试试看parseInt(data) == 1
      

  5.   

    哈哈,已经成功了,
    原来如果 out.println("1"); 要输出一个空行
    我改成   out.print("1"); 则可以了
    并且在 verify 中改成if($.trim(data) == "1") .....还是要谢谢你
      

  6.   


    哈哈,已经成功了,
    原来如果 out.println("1"); 要输出一个空行
    我改成   out.print("1"); 则可以了
    并且在 verify 中改成if($.trim(data) == "1") .....
      

  7.   


    哈哈,已经成功了,
    原来如果 out.println("1"); 要输出一个空行
    我改成   out.print("1"); 则可以了
    并且在 verify 中改成if($.trim(data) == "1") .....还是要谢谢你