我根据登录表单提交前点击的链接重定向到页面。通过ajax提交的表单,我注意到只有在实时服务器中,才会收到通过ajax从php脚本传递的响应。 success: function(data) {//nothing works here}
。因此页面不会被重定向。在php页面中,有用于登录用户的脚本。令人惊讶的是,刷新页面后,用户已登录。在用户登录后,重定向工作正常。
我想知道为什么数据不是通过ajax从php传递的,为什么重定向不起作用?
我的ajax ..
$("#login").on("click",function()
{
// alert(this_link);
$("#login_form").submit(function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "login2.php?id='"+this_link+"'", //Relative or absolute path to response.php file
data: data,
success: function(data) {
$(".the-return").html("<br />JSON: " + data );
// alert("Form submitted successfully.\nReturned json: " + data["json"]);
//alert(data);
//alert(data["json"]);
//console.log(data);
if(data=="'del_create'-1")
{
//window.location='create_post.php';
$(location).attr('href', 'https://sample.com/create_post.php');
}
else if(data=="'del_avail'-1")
{
//window.location='update_post.php';
$(location).attr('href', 'https://sample.com/update_post.php');
}
else
{
window.location='<?php echo $root;?>login/login.php';
}
}
});
php脚本返回的数据
$id3=$id."-".$id2;
echo json_encode($id3);//returns 'del_avail'-1 or 'del_create'-1 if logged in and -0 if not logged in
答案 0 :(得分:0)
在单引号echo
内不起作用。也许以下内容可行。
window.location="<?php echo $root;?>login/login.php";
或
window.location.href="<?php echo $root;?>login/login.php";