我有一個網頁,它有一個通過POST提交的表單。此POST路由處理一些數據並將用戶重定向到GET路由。問題:GET路由被多次調用,通常是3次。所以三個GET被觸發,用戶看到了第一個GET請求。其他兩個GET請求我可以在我的日誌中看到。發佈/重定向/獲取:獲取被多次調用
有時甚至發生了GET被稱爲三次以上...
(當然POST路線就被稱爲一次...)
通過我使用JRuby的方式/ Jetack/Sinatra on Jetty( - > Google App Engine)。問題發生在本地和遠程。
菲利普
我已經看到服務器*在POST請求後的響應是302,c.f.這裏http://www.gittr.com/index.php/archive/details-of-sinatras-redirect-helper/我將代碼更改爲303,但問題保持不變... – Philip 2010-11-13 16:08:26
我能夠調試問題更多:在GET響應HTML中,有一個Javascript使用相對URL從服務器加載圖像。 (/image/some_image.png)如果我刪除加載圖像的代碼,問題不會發生。實際上,在響應圖像GET時,服務器發送一些304東西(匹配請求的序列號)...反正我可以通過使URL絕對地包括主機名來解決問題... – Philip 2010-11-18 01:52:59
它可能有助於發佈(a)驗證您的客戶端沒有發送多個GET請求,(b)分別執行POST和GET請求以驗證POST請求是否觸發了多餘的GET。您可以使用'curl -vL'來詳細地打印發出的請求並遵循重定向,並使用ctrl-z&'fg'(如果在Linux上)在POST和GET之間暫停以檢查您的服務器日誌。 – 2010-11-22 15:35:33