Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/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请求重定向到sfDoctrineGuard登录symfony 1.4_Ajax_Redirect_Symfony 1.4 - Fatal编程技术网

会话超时时将ajax请求重定向到sfDoctrineGuard登录symfony 1.4

会话超时时将ajax请求重定向到sfDoctrineGuard登录symfony 1.4,ajax,redirect,symfony-1.4,Ajax,Redirect,Symfony 1.4,所以我有这个问题很久了。 当会话超时,用户随后进行ajax调用时,页面不会重定向到sfDoctrineGuard登录页面 我真的很惊讶,这个问题并没有被解决很多次,但我真的很难找到一个好的解决方案,有些涉及发送回标题和在ajax调用中拾取,但这似乎有些过头了 解决方案发布在下面,但欢迎提出改进建议。 任何对javascript更了解的人都可能会指出这方面的缺陷。,方法是: if ($sf_request->isXmlHttpRequest()) { echo "<script typ

所以我有这个问题很久了。 当会话超时,用户随后进行ajax调用时,页面不会重定向到sfDoctrineGuard登录页面

我真的很惊讶,这个问题并没有被解决很多次,但我真的很难找到一个好的解决方案,有些涉及发送回标题和在ajax调用中拾取,但这似乎有些过头了

解决方案发布在下面,但欢迎提出改进建议。 任何对javascript更了解的人都可能会指出这方面的缺陷。

,方法是:

if ($sf_request->isXmlHttpRequest()) {
echo "<script type='text/javascript'>top.location.href='".$sf_request->getUri()."'</script>";
exit();
}
if($sf_请求->isXmlHttpRequest()){
echo“top.location.href=”$sf_请求->getUri();
退出();
}

在sfGuard SigninsAccess.php模板的顶部,页面被重定向到ajax调用之外。

这似乎是一个合理且相当简单的解决方案。另一个方法是检查AJAX请求是否返回了401,如果是,则显示一个登录对话框,该对话框将允许用户使用AJAX登录,并避免页面重新加载。鉴于该对话框当前包含任何AJAX调用,您将如何显示该对话框。上面这段javascript调用的所有页面中都包含一些通用javascript函数您能像这样“中断”ajax调用吗?您不必中断任何东西;)事实上,jQuery
ajax()
函数接受不同响应的回调:
statusCode:{401:function(){…}
。您可以在那里添加一个显示登录表单的函数。您仍然需要考虑如何在用户登录后再次自动发送原始请求(除非您不想这样做)。回复延迟了很多,这是关于jquery ajax函数中thr回调选项的非常有用的评论。