原因:
表單提交頁面中使用了 session_start 函數。由於我們后退瀏覽的是緩存頁,而該函數會強制當前頁面不被緩存。
解決:
php:
此提示出現在一個POST提交的頁面,點到其它頁面后,通過JavaScript再返回時,IE就會顯示這個提示。以前也有碰到過好多次,不過都沒太在意,百度一下原來是session在作怪。
在通過IE的后退按鈕或者網頁中的history.go(-1)時,我們看到的將是緩存頁,但使用了session_start后,這個函數會強制當前頁面不被緩存,導致出現“警告: 網頁已經過期”。
解決方法一:
在session_start之后加一句header("Cache-control: private"); 注意在此之前程序不能有任何輸出。
注意在本行之前你的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。
因為使用的框架封裝了session,所以我用的第三種方法
java:
使用javascript的history.back()進行返回時,有時會提示“網頁已過期”,多數是因為目標頁面的form為post提交方式,而且是表單已經提交后的響應頁面,無法找到form中的具體參
數,而“報錯”,具體解決辦法:
一、在要返回的目標頁面中,添加<%response.setHeader("cache-control","public"); %>
二、將目標頁面的form的method="post"去掉,或改為method="get"。
轉:https://www.cnblogs.com/yangjing1314/p/4698838.html