緣由:
表單提交頁面中使用了 session_start 函數。因爲咱們後退瀏覽的是緩存頁,而該函數會強制當前頁面不被緩存。
解決:
php:
此提示出如今一個POST提交的頁面,點到其它頁面後,經過JavaScript再返回時,IE就會顯示這個提示。之前也有碰到過好屢次,不過都沒太在乎,百度一下原來是session在做怪。
在經過IE的後退按鈕或者網頁中的history.go(-1)時,咱們看到的將是緩存頁,但使用了session_start後,這個函數會強制當前頁面不被緩存,致使出現「警告: 網頁已通過期」。
解決方法一:
在session_start以後加一句header("Cache-control: private"); 注意在此以前程序不能有任何輸出。
注意在本行以前你的PHP程序不能有任何輸出和空白javascript
解決方法二:php
基於session的解決方法
在session_start前加上session_cache_limiter('private'); //不清空表單,只在session生效期間
session_cache_limiter還有另兩個參數的含義:
session_cache_limiter('nocache');// 清空表單
session_cache_limiter('public'); //不清空表單,如同沒有使用session
解決方法三:
更改配置文件php.ini。將該文件中session.cache_limiter = nocache改成session.cache_limiter = 或者session.cache_limiter = none,而後從新啓動apache。html
由於使用的框架封裝了session,因此我用的第三種方法java
java:
使用javascript的history.back()進行返回時,有時會提示「網頁已過時」,多數是由於目標頁面的form爲post提交方式,並且是表單已經提交後的響應頁面,沒法找到form中的具體參apache
數,而「報錯」,具體解決辦法:
1、在要返回的目標頁面中,添加<%response.setHeader("cache-control","public"); %>
2、將目標頁面的form的method="post"去掉,或改成method="get"。緩存
轉:https://www.cnblogs.com/yangjing1314/p/4698838.htmlsession