重定向回同一页面时出现 CakePHP 缓存问题


CakePHP caching issue when redirecting back to same page

我正在使用CakePHP 2.6

当我重定向回发出请求的同一视图时,我遇到了问题。视图似乎已缓存,因此在再次刷新页面之前不会显示请求期间所做的任何更改。

这意味着:

  1. 用户看不到刚刚所做的更改。
  2. 闪存消息显示在以下视图中(这是错误的)。

为什么会这样?

我检查过的事情:

  • 我的 PHP 环境已关闭缓存
  • 我的 CakePHP 配置是默认的(见下文)。
  • 缓存应该被禁用,因为我处于调试模式:Configure::write('debug', 2);
  • 我正在启用未启用浏览器缓存的多个浏览器中进行测试。

Configure::write('Session', array( 'defaults' => 'php' ));

代表性示例:

    //Inside ListingsController...
    $this->Listing->id = $id;
    if ($this->Listing->save($listing)) {
        $this->Flash->success(__('"%s" is now active.', $listing['Listing']['title']));
    } else {
        $this->Flash->error(__('Problem activating'));
    }
    //this is the original view...
    $this->redirect( array('controller'=>'listings', 'action'=>'mylistings') ); 

我有完全相同的问题。你找到这一切的原因了吗?当我试图解决问题时,我在响应标题中看到了这一点

Age 0 
Connection keep-alive 
Date Tue, 21 Apr 2015 08:47:21 GMT 
Server ATS/3.2.4

所有带有304 Not Modified Status的文件都有 Apache 流量服务器 (ATS)(来自我的 LAN),这让我认为它是导致所有这些行为的文件;我按照此处的说明强制非缓存,我没有更多的问题。

试试这个,它会重定向到引用

$this->Listing->id = $id;
if ($this->Listing->save($listing)) {
    $this->Flash->success(__('"%s" is now active.', $listing['Listing']['title']));
    // Redirect the referer
    $this->redirect(
        $this->referer()
    );
} else {
    $this->Flash->error(__('Problem activating'));
}

谢谢。。!