【问题标题】:Cakephp jquery mobile refresh reload to see the correct urlCakephp jquery mobile refresh reload 看到正确的url
【发布时间】:2014-09-19 08:45:45
【问题描述】:

我正在使用 cakephp 和 jquery mobile 开发 Web 应用程序的移动版本,但无法解决以下问题:

正在登录,它会将我带到登录页面,但这并未反映在 URL 中。我必须重新加载页面才能看到正确的 url。它在网站的每个页面上都发生了相同的情况。我想我在BeforeFilterAfterFilter 函数中遗漏了一些东西。 我错过了什么?我做错了什么?

步骤发生了什么:

  1. 我在索引页输入邮箱和密码。
  2. 当我提交时,应用程序将我带到登录页面。
  3. url还是索引url!
  4. 当我重新加载页面时,网址会自动更改为正确的网址。

【问题讨论】:

    标签: cakephp jquery-mobile refresh reload


    【解决方案1】:

    我认为,您应该将重定向 URL 添加到 Auth 组件:

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

    并在成功登录的登录动作中使用它:

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

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

    【讨论】:

    • 感谢您的回答。问题是我没有使用 Auth 组件。成功登录后,我使用重定向功能。显然它重定向到登录页面,但它没有反映在 URL 上。一旦我重新加载页面一切都很好。
    • 在 AppController 的 BeforeFilter 函数中,我有以下内容: if ($this->RequestHandler->isMobile()) { $this->is_mobile = true; $this->set('is_mobile', true ); $viewDir = App::path('View'); $mobileViewFile = $viewDir[0] 。 $this->viewPath.'/mobile/'.$this->params['action'] 。 '.ctp'; $this->layout = 'mobile'; $mobileView = $this->viewPath 。 '/移动的/'; $this->viewPath = $mobileView; }
    • 在用户控制器中,当我检查登录是否成功时,我使用 $this->redirect(array('controller' => '....', 'action' => 'login' , $参数));这很奇怪,因为在桌面版本中它运行良好,并且 URL 很好,但在移动版本中却不行
    • 我建议您检查 ($this->RequestHandler->isMobile()) 是否正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 2013-08-01
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多