2010-11-18 52 views
2

我有一個ASP.NET MVC配置,並且構建了一個reportgenerator。我正在輸出一個JQuery表,這樣用戶可以在將它作爲PDF提取之前對它進行排序和重新排列。我的PDF組件是基於.NET的,所以我需要通過AJAX將修改後的表格發送回服務器。Ajax調用超出可接受的URI長度

問題是URI的大小可能達到100k個字符,導致服務器響應的狀態爲414(Request-URI太長)。似乎IIS不允許超過幾千個字符的URI。

我承認編寫一個很大的URL似乎很奇怪,所以我想我可能會錯過一些東西。是否有另一種方式將數據發佈到服務器,或者有可能以另一種方式解決這個問題?

回答

5

超過幾百個字符發送數據更長的推薦方法是使用HTTP POST而不是GET的。 GET將所有數據作爲鍵值對(例如?foo=bar&baz=blah)附加到URI,而POST將數據放入請求正文中。總請求長度也有限制,但它遠大於對URI的限制。 在jQuery方面,從GET切換到POST很簡單 - 閱讀關於jQuery.ajax()的文檔以獲取詳細信息。 在服務器端,您可能必須更改內容,以便從POST中讀取參數而不是GET,但在大多數情況下,這也相對容易。

+0

我現在通過POST發送數據,並帶有鍵值對象。我還必須更改服務器端邏輯,但是添加一個使操作接受post值的屬性非常簡單。謝謝!O) – 2010-11-18 12:24:36

2

在你的問題的關鍵是。你需要POST回到服務器。

API jQuery AJAX post method.

$.post(url, [data], [success(data, textStatus, XMLHttpRequest)], [dataType]); 
+1

+1用於鏈接到jquery文檔 – tdammers 2010-11-18 12:39:13