我懷疑 chrome 在用戶提交之前發送了請求。這可能嗎?

我懷疑 chrome 在用戶提交之前發送了請求。這可能嗎?

我一直在開發這個網站,我注意到 Chrome 上有一個奇怪的行為。當我重新啟動 tomcat 時,它會重新建立資料庫(用於測試 porpuses),因此,我建立了一個填充資料庫的 URL。

問題是,有時當我仍在輸入此 URL 時,我會檢查 Tomcat 存取日誌,結果發現我未提交的請求以某種方式自動提交了。伺服器輸出日誌確認已發送此「幽靈請求」。

如果我確實提交了我輸入的 URL,它會重複請求,然後我會收到一個錯誤頁面,因為資料庫有一些限制,並且值會重複。

這種行為是否在任何地方都得到了預期或記錄(如果是,為什麼不一致?)?有人也經歷過類似的事情嗎?

答案1

我不知道 chrome 是否會提前發出請求,但它可以,而且這應該不是問題。

HTTP GET 請求被視為冪等的,這基本上意味著多次發出請求與僅發出一次請求沒有任何不同。因此,如果 chrome(或任何其他瀏覽器)想要儘早發出 GET 請求來嘗試預先載入頁面,以便在使用者實際按下 Enter 鍵後載入速度更快,那麼這樣做應該不會產生任何負面影響。

當使用 GET 請求發出時,用於填充資料庫的腳本不應對資料庫執行任何操作,而是等待 POST 請求。對於 GET 請求,只需輸出一個帶有提交按鈕的表單,您可以按一下該按鈕,這將發出 POST 請求來填充您的資料庫。

相關內容