2014-09-19 88 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

相關問題