Ajax jquery重定向不起作用

时间:2016-08-11 07:53:17

标签: jquery ajax redirect

我在用户登录时有一个登录表单,他必须重定向到participant-screen.php

Ajax脚本

    $.ajax({
      url: "controller.php",method: "POST",
      data: { loginData: $("#loginForm").serialize(),'action': 'login' },
      dataType: "text",
      success: function(response) {
        $("#showMessage").html(response);
        if (response == 'success') {// response coming as success but not redirecting
 // redirecting script
        }
      }
  });

4 个答案:

答案 0 :(得分:4)

使用ajax时,无法使用header()重定向。相反,当成功处理请求时,您必须重定向ajax的javascript部分。请参阅示例How to redirect to another webpage in JavaScript/jQuery?

请注意,您必须从PHP脚本(例如json)发回信息,以便您可以在javascript中执行相应的操作。

除此之外:

答案 1 :(得分:2)

您需要使用header()

在jquery中不支持

windows.location.href

window.location.href="your url";

答案 2 :(得分:1)

您可以尝试以下重定向方法

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

答案 3 :(得分:-1)

我得到了我的解决方案



$.ajax({
url: "controller.php",
method: "POST",
data: { loginData : $("#loginForm").serialize(), 'action':'login'},
dataType: "json",
success: function (response) {
	if(response["success"]==true)
	{
		$("#showMessage").html(response['message']);
		location = '/learningcurve/participant.php?loginid='+response["id"];
		window.open(location);
	}else{
		$("#showMessage").html(response['message']);
	}
},
error: function (request, status, error) {
	$("#showMessage").html("OOPS! Something Went Wrong Please Try After Sometime!");
}
});
return false;




我使用了用json替换的数据类型文本