2011-07-15 51 views
1

我有几个视图将访问模态框内而不是实际页面。正因为如此我想做到以下几点:CakePHP检测是否在模态框中查看视图

  • 当用户提交的模式里面的内容,它会回传,然后关闭模式,然后将用户返回到他们在(INSTEAD清爽内页MODAL)

注意:我将传递一个特殊的JS函数来关闭模态,但是如何确保模态对话框显示在页面上呢?如果用户试图在他们的浏览器访问网页,而不是直接的模式,然后他们将在其他地方重新定向或所示的403 我使用jQuery用户界面对话框的方式

  • 任何人都可以帮忙吗?

回答

1

jQuery和其他大多数JS frmaeworks将发送X-Requested-with头设置为xmlhttprequest,所以你可以对检测:

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'xmlhttprequest'){ 
    // redirect 
} 
4

考虑到prodigitalson的评论,你检查出request handler documentation的CakePHP的?我不确定,但我认为它可以帮助你做你想做的事。

+1

我不使用的蛋糕,但在Symfony和Zend公司有像控制器上的要求类的方法,便于检测:'$ request-> isXmlHttpRequest()'.. id如果Cake没有内置类似的东西,我会感到惊讶。 – prodigitalson

+2

这正是我链接到的;-) – vindia