我正在用 CakePHP 开发一个应用程序,并且一直在用 Firefox 调试它。一切都很好,直到我决定用 IE 测试它并遇到一些非常奇怪的行为。有时页面不会在 IE 中加载,它们只会以加载状态坐在那里。挂起的页面非常简单,仅使用 CakePHP 的 Html 帮助器创建单个表单并使用 AuthComponent::User() 进行检查(查看用户是否已登录)。我相信这个问题与会话有关。假设我要在 IE 中打开页面,它实际上挂起,我无法在 Firefox 中查看页面,直到我停止 IE 中的连接。
同样,这个问题在 Firefox 中不会发生。我已经尝试过在 CakePHP 的 SessionId cookie 中发布的修复程序,导致页面挂起但没有运气。
更新:我刚刚安装了 XDebug。我在我的 webroot 目录中 index.php 的开头调用了 xdebug_break()。当 IE 中的请求挂起时,永远不会触发此断点。我现在怀疑 WAMP 正在行动?
这是引起关注的代码,这是在我的所有其他控制器扩展的根控制器中。
public function beforeFilter()
{
if($this->Auth->user())
{
if($this->Auth->user('roles') == 'admin')
$this->layout = 'admin';
else if($this->Auth->user('roles') == 'partner')
$this->layout = 'partner';
else if($this->Auth->user('roles') == 'user')
$this->layout = 'user';
}
$this->set('currentController', $this->request['controller']);
$this->set('username', $this->Auth->user('username'));
}