我正在使用PHP進行工作。 我有3頁, A是純HTML,幷包含一個搜索字段。 B是.php並返回搜索結果。 C也是PHP,並允許用戶更新顯示結果的一些細節。爲Mozilla獲取發佈數據
當我在做我的刷新B頁數或去回從C到後來我 得到這個消息
「要顯示此頁面,火狐必須 發送將重複任何 行動信息(如早些時候執行 的搜索或訂單 確認)。「
我看到「當我使用」 POST「的方法,然後我得到這個消息,如果我使用GET然後 我不知道。
任何哥們解釋我,爲什麼? ??
我正在使用PHP進行工作。 我有3頁, A是純HTML,幷包含一個搜索字段。 B是.php並返回搜索結果。 C也是PHP,並允許用戶更新顯示結果的一些細節。爲Mozilla獲取發佈數據
當我在做我的刷新B頁數或去回從C到後來我 得到這個消息
「要顯示此頁面,火狐必須 發送將重複任何 行動信息(如早些時候執行 的搜索或訂單 確認)。「
我看到「當我使用」 POST「的方法,然後我得到這個消息,如果我使用GET然後 我不知道。
任何哥們解釋我,爲什麼? ??
狂放的猜測, POST不寫入URL,所以你需要重新發送它,而GET,當你點擊返回到B,參數仍然在URL中,所以你不需要重新發送。
Mozilla添加此信息以警告您發送信息兩次。 與註冊形式一樣,您不想註冊兩次。
GET方法應被用來獲得從網頁信息。
POST方法應被用來發送信息到一個網頁。
它要求您確認是否要再次發送信息的原因是,如果用戶回退,並不總是重新發布表單。例如,在網上商店,您不希望重新發布表單來購買兩次產品,否則您可能會爲該產品收取兩次費用。這是理所當然的,因爲做網上商店的人應該確保意外購買不會發生。
此外,如果您使用GET,則所有信息將附加到PHP頁面的URL。這是一個潛在的安全問題,特別是如果表單內容是私人的。對於這樣的表單,你應該使用POST。
Firefox開發人員添加了POST方法的警告。它也會在後退/前進的情況下提醒你POST。
這是用戶的附加保障。因爲,大多數購物車/銀行門戶網站使用POST方法進行結帳/交易確認(實際上我沒有看到或開發任何Web應用程序來使用get方法來實現此目的)。因此,在這種情況下(當您間接發送POST請求時,即使用後退/前進/刷新按鈕),Firefox(和大多數其他常見瀏覽器)會警告您。這可以防止用戶多次結帳。
添加此警告的另一個原因是,有時chekout非常耗時。因此,在原始提交後過了一段時間後,一些不耐煩的用戶認爲瀏覽器/服務器已停止工作。所以,他們傾向於按下刷新按鈕。這個警告給了他們一個很好的提示。
Mozilaa觀點...不錯答案+1 – 2011-02-17 08:42:53
我認爲關鍵在於GET請求應該用於獲取信息而不用更改服務器上的任何內容,因此如果重新加載相同的信息,則不存在任何問題。 POST請求應該用於更改服務器上的數據,以便在重新加載可能會產生不良影響的頁面時使用。
當您使用POST方法提交數據時,它會向您提交的頁面發送標題。刷新頁面或返回時,瀏覽器會重複POST請求,Firefox會提醒您。
* GET方法不發送頭文件*什麼?這是不正確的。 – alex 2013-07-04 01:52:27
Firefox通常應該允許您從C頁面導航回您的B頁面。但是,如果您的B頁面不在緩存中,可能是因爲它發送了Cache-control:no-store標題,那麼您將收到POSTDATA警告。
另一方面,顯式重新加載頁面B將始終生成POSTDATA警告。
註冊僅僅是一個例子。如果任何金融交易因刷新頁面而不必要地重複,則可能出現更多問題。 – Trivikram 2011-02-17 08:54:04