关于jquery 访问servlet 页面无法惊醒跳转
js代码:$(document).ready(function(){$("#user_login").click(function(){varusername=$("#u...
js代码:
$(document).ready(function(){
$("#user_login").click(function(){
var username=$("#user_name").val();
var password=$("#user_password").val();
//alert(username1);
//var username=encodeURI(encodeURI(username1));
//var password=encodeURI(encodeURI(password1));
if(username==""||password==""){
alert("用户名密码不能为空");
$("#user_name").val("");
$("#user_password").val("");
return false;
}
$.ajax({
type:"post",
url:"LoginSer",
//dataType:"json",
data:{"username":username,"password":password},
success:function(data){
alert(1);
if(data=='success'){
//alert(1);
location.href="success.jsp";
}else {
location.href="error.jsp";
}
}
})
})
servlet代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("utf-8");
//String uname1=request.getParameter("user_name");//使用action传递
//String passwd1=request.getParameter("user_password");
String uname=request.getParameter("username");
String passwd=request.getParameter("password");
//String uname=URLDecoder.decode(uname1,"utf-8");
//String passwd=URLDecoder.decode(passwd1,"utf-8");
//System.out.println(uname);
LoginBean user=new LoginBean();
user.setUsername(uname);
user.setPassword(passwd);
LoginCheck cku=new LoginCheck();
boolean bool=cku.checkUsre(user);
//session
HttpSession session=request.getSession(true);
session.setAttribute("username", user.getUsername());
PrintWriter out = response.getWriter();//定义out
String forward;
if(bool){
forward="success";
out.println(forward);
System.out.print("success");
}else{
forward="error";
out.println(forward);
}
//RequestDispatcher rd=request.getRequestDispatcher(forward);//页面跳转
//rd.forward(request,response);
}
现在的情况是无法进行ajax的success操作不知道为什么,只把用户的数据显示在地址栏中,页面无法跳转 展开
$(document).ready(function(){
$("#user_login").click(function(){
var username=$("#user_name").val();
var password=$("#user_password").val();
//alert(username1);
//var username=encodeURI(encodeURI(username1));
//var password=encodeURI(encodeURI(password1));
if(username==""||password==""){
alert("用户名密码不能为空");
$("#user_name").val("");
$("#user_password").val("");
return false;
}
$.ajax({
type:"post",
url:"LoginSer",
//dataType:"json",
data:{"username":username,"password":password},
success:function(data){
alert(1);
if(data=='success'){
//alert(1);
location.href="success.jsp";
}else {
location.href="error.jsp";
}
}
})
})
servlet代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("utf-8");
//String uname1=request.getParameter("user_name");//使用action传递
//String passwd1=request.getParameter("user_password");
String uname=request.getParameter("username");
String passwd=request.getParameter("password");
//String uname=URLDecoder.decode(uname1,"utf-8");
//String passwd=URLDecoder.decode(passwd1,"utf-8");
//System.out.println(uname);
LoginBean user=new LoginBean();
user.setUsername(uname);
user.setPassword(passwd);
LoginCheck cku=new LoginCheck();
boolean bool=cku.checkUsre(user);
//session
HttpSession session=request.getSession(true);
session.setAttribute("username", user.getUsername());
PrintWriter out = response.getWriter();//定义out
String forward;
if(bool){
forward="success";
out.println(forward);
System.out.print("success");
}else{
forward="error";
out.println(forward);
}
//RequestDispatcher rd=request.getRequestDispatcher(forward);//页面跳转
//rd.forward(request,response);
}
现在的情况是无法进行ajax的success操作不知道为什么,只把用户的数据显示在地址栏中,页面无法跳转 展开
2个回答
展开全部
1、首先确保ajax的url: "LoginSer"是否能访问、是否在web.xml中正确配置LoginSer的它的mapping
2、打开浏览器看看Ajax发出的请求状态,是否出现404。
3、如果ajax能够请求,看看是否调用了servlet LoginSer的doPost方法,请逐步调试。
你直接在地址栏输如 *****/LoginSer?username=admin&password=123456(这样访问的是doGet方法,你可以在doGet里面直接调用doPost),看看是什么反应。
2、打开浏览器看看Ajax发出的请求状态,是否出现404。
3、如果ajax能够请求,看看是否调用了servlet LoginSer的doPost方法,请逐步调试。
你直接在地址栏输如 *****/LoginSer?username=admin&password=123456(这样访问的是doGet方法,你可以在doGet里面直接调用doPost),看看是什么反应。
追问
我重写了个简单的跳转是成功的,不知道为什么这个页面的跳转输入用户名和密码都会显示在地址栏中,我用的是post 方法,按理来说应该跳到url的界面中去
追答
点击按钮你是通过ajax提交登录信息,我看你type:"post",怎么可能登录信息会出现在地址栏里,是否按钮时间触发了登陆form的提交?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询