【问题标题】:How to disable "Document Expired" without using cache如何在不使用缓存的情况下禁用“文档已过期”
【发布时间】:2012-11-01 04:51:27
【问题描述】:

我所做的很简单:
第1页(POST)->模型2->第2页->第3页

从第3页点击浏览器的“返回”按钮访问第2页时,
我不想向用户显示“网页已过期”(IE) 或“文档已过期”(FF)。

据我所知,一种解决方案是将“Cache-Control”设为私有或公开,
但我需要在 model2 中生成一些一次性密钥
稍后将发布到第 3 页(在另一个站点)。
返回第2页时,也必须重新生成一次性密钥,
所以缓存似乎不是我的解决方案。

使用 GET 将参数从 Page1 传递到 Page2 可以正常工作,
一次性密钥每次都会重新生成,并且浏览器不会发出警告
除了一个小问题:参数显示在网址中。
尝试通过在获取后立即使用重定向来解决此问题,
但这又导致了缓存问题:我无法重新生成一次性密钥。

那么有什么方法不会在从Page1到Page2的url中显示参数
当点击“返回”按钮时,从第 3 页到第 2 页不会显示“文档已过期”?

【问题讨论】:

    标签: php caching post get


    【解决方案1】:

    在导航到下一页之前通过 ajax 发布它们

    【讨论】:

    • 由于 Page3 在另一个站点上,我无法更改一次性密钥从 Page2 发布到 Page3 的方式。所以我假设你的意思是通过ajax从Page1发布参数到model2(或者其他一些模型然后将它们传递给model2),然后使用GET生成一次性密钥并显示Page2。我认为这会奏效,试一试。
    • 好吧,最后我通过“在导航到 Page3 之前通过 ajax 获取一次性密钥”并缓存 Page2 解决了这个问题。
    • 所以点击Page2上的提交链接,通过ajax获取一次性密钥,将密钥插入/更新到Page2的表单中,使用form.submit()将数据和密钥发布到Page3 .
    猜你喜欢
    • 2012-11-02
    • 2021-06-10
    • 2018-05-20
    • 1970-01-01
    • 2010-09-08
    • 2014-09-09
    • 1970-01-01
    • 2020-06-27
    • 2011-07-19
    相关资源
    最近更新 更多