[英]Ajax/Jquery Redirect call does not work
因此,从我的 php 中,我正在回显 {error:1}:
$(document).ready(function(){
$('#form').submit(function(e){
register();
});
});
function register(){
$.ajax({
type:"POST",
url:"submit.php",
async : false,
data: $('#form').serialize(),
dataType: "json",
success: function(msg){
if(parseInt(msg.error)==1){
window.location="index.html";
}
else if(parseInt(msg.error)==0){
$('#error_out').html(msg.error);
e.preventDefault();
}
}
});
}
但它不想重定向。 相反,它返回带有 1 的“submit.php”。
好吧,你不能只返回 1,因为那不会是 JSON。 如果您只是返回“1”并对其执行 parseInt,请将 dataType 设置为“html”。
如果您想要 JSON,请在您的 PHP 中执行此操作:
$return = array('code'=>1);
echo json_encode($return);
您的“成功” function 如下所示:
if(msg.code==1){
window.location="index.html";
}
else if(msg.code==0)
{
$('#error_out').html(msg.code);
e.preventDefault();
}
else
{
// handle any other return value.
}
好的,我的错是没有正确阅读问题。 问题是您正在提交表单,并且没有正确取消它。 在您的事件处理程序中执行此操作:
$(document).ready(function(){
$('#form').submit(function(e){
e.preventDefault();
register();
});
});
您可以删除失败案例中的那个。 那个没有做任何事情,因为在异步 function 回来(如果它确实这样做的话)时,堆栈已经被清除了。
您必须防止表单自行提交。
$(document).ready(function(){
$('#form').submit(function(e){
register();
e.preventDefault(); // Or return false;
});
});
您的表单提交并且 ajax 没有机会进行其回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.