我有一個struts2,Hibernate和Spring應用程序。它在我們的本地工作正常。當我們在開發服務器上部署應用程序時,有時會在表單提交中提交兩次表單。這會導致在數據庫中輸入重複數據。表單在Struts 2中提交兩次,Hibernate應用程序在網絡代理中拋出
這隻發生在服務器上。這在Firefox上很少發生,但在IE中很常見。再次,這隻發生在某些形式上,而不是其他形式上。沒有什麼可以區分這些形式。
我們有時使用struts 2提交按鈕來提交表單,有時用簡單的按鈕來提交表單。
作爲最後一種方法,我們可以使用攔截器來防止雙重表單提交(我們將不得不對更多的表單進行更改),但重點是它不會在本地結束。爲什麼它只在服務器上發生,而且在某些形式上,有時只在某些形式上發生
編輯:
我注意到的另一件事是,當我即使在服務器形式不使用網絡代理則沒有提交兩次,但在使用網絡代理,提交表單兩次。該應用程序沒有任何代理正常工作正常。根本沒有重複。
代理與它有什麼關係?有沒有人遇到過網絡代理和雙重表單提交的問題?
EDIT2:
剛纔我發現,在使用代理有時訪問在這種情況下POST請求被拒絕由導致雙表單提交的瀏覽器發送兩次。
如果我看到HTTP頭,我可以看到兩個POST請求與頭其中一個具有以下
HTTP/1.1 407代理服務器身份驗證(ISA服務器需要授權來滿足該請求。訪問Web代理服務被拒絕。)
對此有何想法? 請幫忙。
您是否設置了** [Token Interceptor](http://struts.apache.org/2.2.1/docs/token-interceptor.html)**(防止重複表單提交) – lschin 2011-05-31 05:41:58
@lschin No. I have沒有那樣做。如果我沒有得到任何其他解決方案,我最終會使用這個功能。但問題不是雙重形式被提交其他東西。不知道是什麼。 – ashishjmeshram 2011-05-31 05:50:54
嘿,請來吧,有這麼多的大師和專家在SO上。我一直在努力,但沒有成功。 – ashishjmeshram 2011-05-31 07:56:54