中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

ajax如何解決參數(shù)過長(zhǎng)無法提交成功的問題-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的洛龍網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

查了很多資料都說,get方法的參數(shù)是有限制的,post方法的參數(shù)的長(zhǎng)度是無限制,這也是post相比get的優(yōu)勢(shì)一直。

在ajax中使用post方法,用常規(guī)的參數(shù)格式:param1=a1&param2=a2 ,當(dāng)參數(shù)長(zhǎng)度過長(zhǎng)時(shí),依然提交不成功。比如我們經(jīng)常這樣寫一個(gè)ajax的post請(qǐng)求:

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

這樣使用的時(shí)候,發(fā)現(xiàn)若是參數(shù)2:content內(nèi)容過多時(shí),比如我傳的是一個(gè)比較大的文本內(nèi)容,我在后臺(tái)服務(wù)(我用的是servlet)中獲取時(shí):

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

這里的content的值,為null。

還有一種快捷的方法可以查看ajax請(qǐng)求是否成功,使用F12開發(fā)者工具進(jìn)行調(diào)試,在執(zhí)行完ajax代碼后,在F12工具中的network選項(xiàng)頁面中,可以看到發(fā)起的請(qǐng)求,這時(shí)候看到的請(qǐng)求的參數(shù)有錯(cuò)誤提示。

解決方法:

ajax的參數(shù)格式還有另外一種寫法:json格式的請(qǐng)求參數(shù),我可以寫成這樣:

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

這個(gè)時(shí)候,若是使用F12進(jìn)行debug,可以看到請(qǐng)求的參數(shù)的數(shù)據(jù)都是正確的。

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

由于請(qǐng)求參數(shù)是一個(gè)json數(shù)據(jù)塊,所以這種request.getParameter(“content”)方法,當(dāng)然獲取不到數(shù)據(jù)啦,因?yàn)樗粫?huì)給我們解析json數(shù)據(jù)。

那么我們傳遞的參數(shù)數(shù)據(jù)在哪里呢?

重點(diǎn)來了:數(shù)據(jù)都在request對(duì)象里。

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


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();
}

這時(shí)候,我們的json數(shù)據(jù)都在sb對(duì)象中了,接下來只需要解析json對(duì)象就可以了:


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

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

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“ajax如何解決參數(shù)過長(zhǎng)無法提交成功的問題”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

文章名稱:ajax如何解決參數(shù)過長(zhǎng)無法提交成功的問題-創(chuàng)新互聯(lián)
標(biāo)題URL:http://www.rwnh.cn/article6/cspdog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版移動(dòng)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、電子商務(wù)、動(dòng)態(tài)網(wǎng)站標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
社旗县| 遵化市| 龙胜| 霞浦县| 黄梅县| 哈巴河县| 册亨县| 静海县| 乾安县| 韩城市| 怀柔区| 霍城县| 惠东县| 江油市| 札达县| 故城县| 沾化县| 三河市| 荥经县| 汝州市| 深圳市| 鄱阳县| 湖州市| 安顺市| 鄂托克旗| 阿鲁科尔沁旗| 新丰县| 安远县| 武宣县| 龙州县| 望奎县| 五大连池市| 南澳县| 曲松县| 肇庆市| 抚宁县| 大厂| 竹溪县| 双柏县| 应城市| 池州市|