使用history.back()返回此網頁需要使用您之前輸入的數據才能正常顯示


原因:
  表單提交頁面中使用了 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM