91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ajax如何解決參數過長無法提交成功的問題

發布時間:2021-09-14 11:12:34 來源:億速云 閱讀:201 作者:小新 欄目:web開發

這篇文章主要介紹了ajax如何解決參數過長無法提交成功的問題,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

查了很多資料都說,get方法的參數是有限制的,post方法的參數的長度是無限制,這也是post相比get的優勢一直。

在ajax中使用post方法,用常規的參數格式:param1=a1&param2=a2 ,當參數長度過長時,依然提交不成功。比如我們經常這樣寫一個ajax的post請求:

$.ajax({
  type: "post",  // post or get
  contentType:"application/json;charset=utf-8",
  data: “requestTag=”+tag+"&content="+content,  //請求參數
  url: "postMockJson",   //地址
  dataType: "text",
  error: function (err) {
   outLog("錯誤"+err);
  },
  success: onSaveSuccess
});

這樣使用的時候,發現若是參數2:content內容過多時,比如我傳的是一個比較大的文本內容,我在后臺服務(我用的是servlet)中獲取時:

String content= request.getParameter("content");

這里的content的值,為null。

還有一種快捷的方法可以查看ajax請求是否成功,使用F12開發者工具進行調試,在執行完ajax代碼后,在F12工具中的network選項頁面中,可以看到發起的請求,這時候看到的請求的參數有錯誤提示。

解決方法:

ajax的參數格式還有另外一種寫法:json格式的請求參數,我可以寫成這樣:

var param = "{requestTag:\""+requestTag+"\",content:\""+content+"\"}";
(ps:注意json格式要正確)

這個時候,若是使用F12進行debug,可以看到請求的參數的數據都是正確的。

那么問題來了,我在servlet中獲取的content依舊是null,這是為什么呢???

由于請求參數是一個json數據塊,所以這種request.getParameter(“content”)方法,當然獲取不到數據啦,因為它不會給我們解析json數據。

那么我們傳遞的參數數據在哪里呢?

重點來了:數據都在request對象里。

那么我們就用最原始的方法,通過數據流的方法獲取傳遞的數據,如下:

request.setCharacterEncoding("UTF-8");
StringBuilder sb = new StringBuilder();
try(BufferedReader reader = request.getReader();) {
char[] buff = new char[1024];
int len;
 while((len = reader.read(buff)) != -1) {
  sb.append(buff,0, len);
  }
}catch (IOException e) {
   e.printStackTrace();
}

這時候,我們的json數據都在sb對象中了,接下來只需要解析json對象就可以了:

JSONObject jobject = JSONObject.fromObject(sb.toString());
String requestTag = jobject.getString("requestTag");
String content = jobject.getString("content");

到這里,我們就可以獲取到content的了。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“ajax如何解決參數過長無法提交成功的問題”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新平| 嘉峪关市| 偏关县| 万年县| 洪雅县| 波密县| 中方县| 许昌市| 图片| 怀集县| 高碑店市| 泸定县| 扎兰屯市| 龙州县| 淳化县| 普陀区| 长阳| 广平县| 霍邱县| 广南县| 日土县| 藁城市| 如东县| 遂昌县| 庄河市| 郓城县| 兴化市| 平山县| 新龙县| 鹤庆县| 江口县| 临桂县| 铅山县| 邯郸市| 浦县| 天津市| 巫溪县| 黄浦区| 广河县| 玉环县| 吴旗县|