PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-使用AjaxContext后重定向不起作用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在我的控制器init()方法中,我调用AjaxContext-Helper并将其设置为该控制器中的某些方法/动作.像这样:

public function init()
{
    $ajaxContext = $this->_Helper->getHelper('AjaxContext');
    $ajaxContext->addActionContext('setlabel', 'html');
    $ajaxContext->initContext();
}

现在,当我想使用从ajax请求到非ajax方法重定向

$this->redirector->gotoSimple('manage', 'team', null, array('id' => $teamID));

我有页面无法加载的问题.我认为那是因为AjaxContext弄乱了标题.

我在重定向之前尝试过clearHeaders和clearContexts,但是没有任何效果.

在各自的ajax方法(AjaxContent)中,[edit]我通常以对myviewscript.ajax.phtml的ajax响应来响应.但是在某些情况下,我现在想重定向到另一个控制器中的正常非ajax操作.[/ edit]

有任何想法吗?谢谢!

解决方法:

好.希望我理解你的目标.

首先,在Zend_Controller_Action实例上没有直接的重定向方法.

所以这:

$this->redirector->gotoSimple('manage', 'team', null, array('id' => $teamID));

应该是这样的

$this->_Helper->redirector->gotoSimple('manage', 'team', null, array('id' => $teamID));

当然,除非您已将重定向器分配给控制器的属性.在这种情况下,您应该是对的,但我会仔细检查.

同样,在XHR请求期间调用_redirect方法或Redirector操作帮助程序将仅重定向XHR请求本身.您是否要重定向XHR请求?还是实际上将用户的浏览器重定向到其他页面

编辑:

好吧.所以,没有您的评论
您的目标是在满足某些条件的情况下,将用户的浏览器会话重定向到XHR请求的其他页面.重定向器动作帮助器在这里不再使用. XHR / Ajax请求没有什么特别的……如果它看到301/302重定向,它就会像常规浏览器请求一样随心所欲.它不会做任何有趣的事情.

因此,要解决您的问题,您将需要做一些自定义操作.这是可行的:

>在Ajax请求期间,如果满足用户重定向的条件,则将某种特殊响应发送回客户端;它可以是您想要的任何内容.特定的字符串,JSON响应…您可以轻松检查的任何内容.
>当您在客户端收到响应时,请检查它是否是您在步骤1中发送的特殊消息.
>如果是,则必须使用Javascript执行重定向. window.LOCATIOn =一切正常.

大佬总结

以上是大佬教程为你收集整理的php-使用AjaxContext后重定向不起作用全部内容,希望文章能够帮你解决php-使用AjaxContext后重定向不起作用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: