当我用AJAX像服务器发送一个登录请求后,服务器验证数据是否正确,是则跳到另一个
页面,否则返回一个数据错误的信息给AJAX,页面不刷新。
当验证正确时我用的是servlet的
request.getRequestDispatcher("../index.jsp").forward(request, response);跳转方式
错误就直接out.print();可是不管怎样都是跳到了那个请求页面
请问要怎样才能跳到另一个页面,还能带着数据过去
ajax代码
//声明XMLHttpRequest对象
var xmlrequest;
//初始化XMLHttpRequest
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
xmlrequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
xmlrequest = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlrequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
}
}
}
}
//定义回调函数
function processResponse(){
//响应完成
if(xmlrequest.readyState == 4){
//响应正常
if(xmlrequest.status == 200){
var head = xmlrequest.responseText;
alert(head);
}
}
}
servlet代码
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("post被触发了");
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String account = request.getParameter("account");
String password = request.getParameter("password");
if (account == "admin" & password == "admin"){
request.getRequestDispatcher("../index.jsp").forward(request, response);
}else{
PrintWriter out = response.getWriter();
out.print("错误");
}
贴出code来看看,ajax和处理请求的java方法。
可以用jquery的ajax啊 方便 $.post("url",{......},funtion(result){
if(result){跳转网页}else{弹出提示框}
})
ajax请求不理会跳转的,你需要在客户端用js进行跳转,如果正确你输出1,不正确输出0就行,其他不要输出
function processResponse(){
//响应完成
if(xmlrequest.readyState == 4){
//响应正常
if(xmlrequest.status == 200){
var head = xmlrequest.responseText;
if(head=='1')location='xxxxxxxxxxxxxxxxxx'///////成功进行体总站
}
}
$.ajax({
url : '',
success : function(data){
if(data.status='1'){
//跳转,也可以?传值将参数传过去
window.location.href="";
}
}
});
希望对你有帮助,ajax的数据项有省略,具体查看api
页面间传值可以用Session对象
利用ajax返回成功后,在success回调函数中window.location=""可以在本页面进行跳转
$.ajax({
type : "post",
url : "",
data : ,
success : function(json)
{
if (json.success)
{
alert("ajax成功!");
var url = $("#save").val();
window.location = url;
}
else
{
alert(json.msg || "ajax失败!");
}
},
error : function(json)
{
alert("ajax失败!");
}
});
正解
$.ajax({
type : "post",
url : "",
data : ,
success : function(json)
{
if (json.success)
{
alert("ajax成功!");
var url = $("#save").val();
window.location = url;
}
else
{
alert(json.msg || "ajax失败!");
}
},
error : function(json)
{
alert("ajax失败!");
}
});
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.location.href;
//获取主机地址之后的目录,如: uimcardprj/share/meun.jsp
var pathName=window.document.location.pathname;
var pos=curWwwPath.indexOf(pathName);
//获取主机地址,如: http://localhost:8083
var localhostPaht=curWwwPath.substring(0,pos);
//获取带"/"的项目名,如:/uimcardprj
var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1);
return(localhostPaht+projectName);
}
function tongguo(id){
var id = id;
jq.ajax({
url:getRootPath()+'访问的地址',
data:"id="+id,
type:'post',
dataType:'text',
success:function(data){
alert(data);
var newurl=getRootPath()+'跳转的地址';
window.location.href=newurl;
},
error: function(error){
alert("失败!!!");
}
});
}
楼上几家,用的ajax都是简单方便的写法,很正解
window.location.href=url.
window.location.href=url.