Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajax操作中的Symfony2重定向_Ajax_Symfony_Redirect - Fatal编程技术网

ajax操作中的Symfony2重定向

ajax操作中的Symfony2重定向,ajax,symfony,redirect,Ajax,Symfony,Redirect,我正在使用Symfony2,在我的register.html.twig中,我有: var registerdata= { "email": email, "pwd": pwd, "phoneNum": phoneNum }; $.ajax({ type: 'POST',

我正在使用Symfony2,在我的register.html.twig中,我有:

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中执行重定向。