2014-09-19 61 views
0

我正在开发使用CakePHP和jQuery移动Web应用程序的移动版本,我可以不解决如下问题:CakePHP的jQuery Mobile的刷新重新加载才能看到正确的URL

记录在工作和它带给我到登录页面,但这不反映在URL中。我必须重新加载页面才能看到正确的网址。在网站的每一页上都会发生同样的情况。我想我在BeforeFilterAfterFilter函数中丢失了一些东西。 我错过了什么?我做错了什么?

步骤发生了什么:

  1. 我进入索引页的电子邮件和密码。
  2. 当我提交时,应用程序将我带到登录页面。
  3. 该网址仍然是索引网址!
  4. 当我重新加载页面时,网址会自动更改为正确的网址。

回答

0

我认为,你应该添加重定向URL的验证组件:

 'Auth' => array(
     'loginRedirect' => array('controller' => 'controller', 'action' => 'action'), 
    ) 

而且用它在成功的登录登录操作:

if ($this->Auth->login()) { 
return $this->redirect($this->Auth->redirectUrl()); 
} 

取决于你如何处理登录过程,这是没有涉及AJAX的经典方式。

+0

谢谢你的回答。问题是我没有使用Auth组件。成功登录后,我使用重定向功能。显然它会重定向到登录页面,但不会反映在URL上。一旦我重新加载页面一切都很好。 – Victor 2014-09-19 10:22:50

+0

在AppController中的BeforeFilter函数I有如下:如果($这 - > RequestHandler-> isMobile()){ \t \t \t \t $ \t这 - > IS_MOBILE = TRUE; \t $ this-> set('is_mobile',true); \t \t \t $ viewDir = App :: path('View'); $ mobileViewFile = $ viewDir [0]。 $ this-> viewPath。'/ mobile /'.$ this-> params ['action']。 '.ctp'; $ this-> layout ='mobile'; $ mobileView = $ this-> viewPath。 '/移动/'; $ this-> viewPath = $ mobileView; \t \t \t \t } – Victor 2014-09-19 10:26:24

+0

而在当我检查该日志在UsersController是sucsses我使用$这 - >重定向(阵列( '控制器'=> '....', '动作'=> '登录' ,$ parameter));这很奇怪,因为在桌面版本中它的工作完美,URL很好,但不是在移动版本 – Victor 2014-09-19 10:29:34