我有几个视图将访问模态框内而不是实际页面。正因为如此我想做到以下几点:CakePHP检测是否在模态框中查看视图
- 当用户提交的模式里面的内容,它会回传,然后关闭模式,然后将用户返回到他们在(INSTEAD清爽内页MODAL)
注意:我将传递一个特殊的JS函数来关闭模态,但是如何确保模态对话框显示在页面上呢?如果用户试图在他们的浏览器访问网页,而不是直接的模式,然后他们将在其他地方重新定向或所示的403 我使用jQuery用户界面对话框的方式
任何人都可以帮忙吗?
我有几个视图将访问模态框内而不是实际页面。正因为如此我想做到以下几点:CakePHP检测是否在模态框中查看视图
注意:我将传递一个特殊的JS函数来关闭模态,但是如何确保模态对话框显示在页面上呢?如果用户试图在他们的浏览器访问网页,而不是直接的模式,然后他们将在其他地方重新定向或所示的403 我使用jQuery用户界面对话框的方式
任何人都可以帮忙吗?
如果我理解正确的话,你可能需要这个:http://book.cakephp.org/view/1371/isAjax
在控制器:if ($this->requestHandler->isAjax()) { ... this is ajax request.. } else { ... non-ajax ...}
jQuery和其他大多数JS frmaeworks将发送X-Requested-with
头设置为xmlhttprequest
,所以你可以对检测:
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'xmlhttprequest'){
// redirect
}
考虑到prodigitalson的评论,你检查出request handler documentation的CakePHP的?我不确定,但我认为它可以帮助你做你想做的事。
我不使用的蛋糕,但在Symfony和Zend公司有像控制器上的要求类的方法,便于检测:'$ request-> isXmlHttpRequest()'.. id如果Cake没有内置类似的东西,我会感到惊讶。 – prodigitalson
这正是我链接到的;-) – vindia