現在大多數現代瀏覽器都不支持AJAX和客戶端請求而不執行POST,POST(表單發佈)的作用是什麼?POST與Ajax調用
當POST始終優先於XmlHttpRequest時,是否存在某些情況或一般規則?
POST所做的就是在服務器頭中放置可變的鍵值對。我可以想到POST的優點是大量的數據和移動瀏覽器。還有很多我失蹤的人嗎?
N.B.我知道你可以使用AJAX調用來執行POST,我主要用<form>
標籤來說話
現在大多數現代瀏覽器都不支持AJAX和客戶端請求而不執行POST,POST(表單發佈)的作用是什麼?POST與Ajax調用
當POST始終優先於XmlHttpRequest時,是否存在某些情況或一般規則?
POST所做的就是在服務器頭中放置可變的鍵值對。我可以想到POST的優點是大量的數據和移動瀏覽器。還有很多我失蹤的人嗎?
N.B.我知道你可以使用AJAX調用來執行POST,我主要用<form>
標籤來說話
這個問題有點棘手,因爲它混淆了兩個概念。第一個是發佈,第二個是Ajax。與GETting相比,POSTing是具有不同實現和語義的不同HTTP方法。 Ajax或XmlHttpRequest在正常請求/導航中具有其對應物。你可以使用POST或者GET來獲取XmlHttpRequest和正常的導航和表單提交(當然,POST始終是一個「表單提交」)。 XmlHttpRequest和普通請求的不同之處在於普通請求用新頁面替換頁面。
你可以寫任何只使用Ajax獲取數據和更改DOM的網站;這主要是Gmail的工作原理。傳統意義上沒有「表單提交」。但仍然有GET和POST,因爲服務器和瀏覽器以不同的方式解釋結果。 GET應該是冪等的; POST用於改變服務器狀態的操作。例如,一個ecom交易應該是一個POST。這在使用Ajax時不會改變,因爲您希望代理服務器也瞭解這是一個POST,並且他們不應該嘗試緩存響應。
使用GET vs POST也有優點和缺點。您無法爲POST的結果添加書籤,因爲這些參數是隱藏的。你無法獲得無限長度的參數值,因爲IE只支持大約2000個字符。
使用Ajax和正常提交也有缺點;你不能爲結果頁面添加書籤(因爲頁面沒有改變);後退按鈕將無法按預期工作。但通過Ajax,您可以最小化傳輸的數據,並且還可以方便地更新頁面(例如監視長過程的狀態),而不會產生煩人的閃爍或刷新。
總之,Ajax和傳統表單提交這兩種請求類型都可以與GET和POST一起使用,每種請求類型都有優缺點。其他類型都無法做到其他任何事情,因此您可以預見在可預見的將來會出現混合。
如果你需要刷新整個頁面,那麼文章可能會更容易。
由於安全限制,某些操作無法使用AJAX請求執行。例如,上傳文件不能用AJAX完成。
關鍵的區別在於表單的POST發送數據,並且可以在到服務器的單次往返中導航到新的URL。 Ajax可以發送數據但不能導航到新頁面。
呃..張貼表格?
由於這些值隱藏在html標題中,並且沒有添加到url字符串中,所以對於大型表單來說,Post非常好用?
如果理論上,HTTP GET應該是對信息的冪等請求:兩個相同的GET應該返回完全相同的信息。
另一方面,HTTP POSTs旨在保持狀態並執行操作:兩個完全相同的POST可能會根據執行操作的人員,執行的操作以及執行操作的時間執行不同的操作。
我會用this video來回答我自己的問題我最近偶然發現了Doug Crockford。他描述了所有ajax和所有頁面刷新之間的蹺蹺板。
我沒有想到,好點。 – kemiller2002 2009-01-23 14:26:33
如果在Ajax請求中檢測到文件上載,jQuery將自動在內部創建一個iframe,並在iframe中創建一個表單,並形成POST。 – 2009-01-23 14:50:30
即使如此,這仍然是一個POST,這是我的觀點。 – Welbog 2009-01-23 15:28:53