2010-03-16 49 views
0

我有一個用C編寫的CGI應用程序。當我從html表單向cgi應用程序發佈POST(刪除數據)時,服務器上的操作被正確執行,但POST後沒有刷新頁面。它閃爍,但顯示未更新的頁面。然後我必須刷新瀏覽器才能看到正確更新的html頁面(顯示數據已被刪除)。HTML不更新?

這是網站服務器嗎? JavaScript的?或只是一個瀏覽器設置? (我用的GoAhead Web服務器,在C,JavaScript的,HTML和火狐狸CGI應用程序。)

任何幫助表示讚賞。

回答

2

這是您的瀏覽器緩存正在玩弄你。

檢查您在頁面上看到的HTTP標頭,看看是否有任何關於緩存的內容,如果它是您的Web服務器導致緩存,否則它是瀏覽器。嘗試使用其他瀏覽器,或者讓網絡服務器發送負面過期日期的頁面。

+0

否定過期日期是否會保證新的頁面? – 2010-03-16 20:21:50

+0

查看標題,當有圖像時顯示「cache-Control:no-cache和Pragma:no-cache」雖然 – 2010-03-16 20:27:48

+0

沒有此信息根據我的經驗,負面過期日期將導致頁面立即過期,即它不會被緩存在瀏覽器中。但我認爲這可能被認爲是黑客攻擊,我會首先查找問題的原因,看看它是否可以修復。 – adamse 2010-03-16 20:53:27

1

是否確定要返回更新後的頁面以響應POST?

+0

更新後的頁面位於客戶端的本地目錄中....然後顯示正確(但我必須手動打開瀏覽器刷新)我期望在POST後直接顯示新頁面。 – 2010-03-16 20:23:12

1

爲了確保正在發生的事情,你需要嗅探局域網(使用Wireshark)。

Wrieshark顯示您的流量,也可以過濾特定的流。

捕獲後,您可以瞭解到底發送到服務器的是什麼以及響應是什麼。

1

如果您使用的是Firefox,你需要安裝Firebug的插件,它會告訴你,如果你的頁面被緩存或正確的「網」面板從服務器檢索的時間。