ajax操作中的Symfony2重定向
我正在使用Symfony2,在我的register.html.twig中,我有:ajax操作中的Symfony2重定向,ajax,symfony,redirect,Ajax,Symfony,Redirect,我正在使用Symfony2,在我的register.html.twig中,我有: var registerdata= { "email": email, "pwd": pwd, "phoneNum": phoneNum }; $.ajax({ type: 'POST',
var registerdata= {
"email": email,
"pwd": pwd,
"phoneNum": phoneNum
};
$.ajax({
type: 'POST',
url: "register",
data: registerdata,
success: function(msg){
alert("OK! ");
},
error: function(XmlHttpRequest,textStatus, errorThrown){
alert("Failed! ");
}
});
在我的控制器中,将这些数据插入数据库后,我想重定向到登录页面,我有如下代码:
try
{
$this -> insertData($account);
return $this ->redirect($this ->generateUrl('login'));
}
catch (Exception $e)
{
return new response('Message: '. $e->getMessage());
}
然而,它不起作用。我该如何处理这个问题 您需要在jQuery代码中再执行一步。当服务器返回重定向响应时,应使用javascript重定向客户端:
var registerdata= {
"email": email,
"pwd": pwd,
"phoneNum": phoneNum
};
$.ajax({
type: 'POST',
url: "register",
data: registerdata,
success: function(msg){
alert("OK! ");
},
error: function(XmlHttpRequest,textStatus, errorThrown){
alert("Failed! ");
},
complete: function(xhr)
{
if (xhr.status == 302) {
location.href = xhr.getResponseHeader("Location");
}
}
});
当然,这远远不够理想。服务器重定向不应该在Ajax调用中完成。在jquery中执行重定向。