2013-12-12 53 views
0

我創建了一個搜索表單來查找MVC網站上的帖子。POST或GET在搜索表單中?

表單類型應該是POST還是GET?

我知道被獲取可能爲搜索添加書籤等等。

使用GET的缺點?

謝謝你, 米格爾

+2

http://stackoverflow.com/questions/195212/what-are-the-advantages-of-using-a-get-request-over-a-post-request – Kamlesh

回答

1

隨着GET動詞,參數將在URL,沒有HTTP請求體GET。與POST參數在請求正文。與GET是好的,因爲用戶可以複製/粘貼此路徑並在任何地方共享。我經常在這種approuch中使用GET。

no limit for arguments on the URL of http

The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource they serve, and SHOULD be able to handle URIs of unbounded length if they provide GET-based forms that could generate such URIs. A server SHOULD return 414 (Request-URI Too Long) status if a URI is longer than the server can handle (see section 10.4.15).

但隨着賈森評論,瀏覽器可以有限制。

不管怎麼說,用GET或,當你用這種approuch在數據庫上搜索時,記得要用方法避免sql injection。如果你打算使用ado.net, use Parameters。如果你正在使用和ORM它會照顧你。

+0

我不修改任何數據,所以這就是爲什麼我想使用GET。我是否需要對插入輸入內容的任何保護?基本上我通過獲得長度高於4個字符的最多4個不同的單詞來解析字符串。然後我在數據庫中搜索標題中包含這些單詞的帖子。 –

+0

我正在使用實體框架...在此之前,我拆分所有的單詞,並獲得一些滿足我的標準,所以即使有某種腳本它將在該階段被銷燬...我認爲 –

+0

瀏覽器有一個查詢字符串限制。 http://stackoverflow.com/questions/812925/what-is-the-maximum-possible-length-of-a-query-string – Jasen

0

除非你正在修改數據時,我會去用GET。如果您總是獲取數據並且不處理數據,我看不出什麼缺點。

0

搜索不一定是帖子,你試圖獲取一些數據,而不是修改或插入。

+0

我不修改任何數據,所以這是爲什麼我想用GET。我是否需要對插入輸入內容的任何保護?基本上我通過獲得長度高於4個字符的最多4個不同的單詞來解析字符串。然後我在數據庫中搜索標題中包含這些單詞的帖子。 –

+0

你可以使用其他技術來處理,如使用sql或存儲過程中的參數,使用類似LINQ等。 –