濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > ajax快速解決參數(shù)過(guò)長(zhǎng)無(wú)法提交成功的問(wèn)題

ajax快速解決參數(shù)過(guò)長(zhǎng)無(wú)法提交成功的問(wèn)題

熱門標(biāo)簽:東平縣地圖標(biāo)注app 怎樣在地圖標(biāo)注文字 地圖標(biāo)注推銷坑人 大眾點(diǎn)評(píng)400電話怎么申請(qǐng) 上海企業(yè)外呼系統(tǒng)價(jià)錢 立陶宛地圖標(biāo)注 電銷機(jī)器人 長(zhǎng)春 河間市地圖標(biāo)注app 中國(guó)地圖標(biāo)注不明確情況介紹表

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

在ajax中使用post方法,用常規(guī)的參數(shù)格式:param1=a1param2=a2 ,當(dāng)參數(shù)長(zhǎng)度過(guò)長(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)容過(guò)多時(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)頁(yè)面中,可以看到發(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ù)都是正確的。

那么問(wèn)題來(lái)了,我在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)來(lái)了:數(shù)據(jù)都在request對(duì)象里。

那么我們就用最原始的方法,通過(guò)數(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ì)象中了,接下來(lái)只需要解析json對(duì)象就可以了:

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

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

以上這篇ajax快速解決參數(shù)過(guò)長(zhǎng)無(wú)法提交成功的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • ajax上傳時(shí)參數(shù)提交不更新等相關(guān)問(wèn)題
  • jQuery中ajax的使用與緩存問(wèn)題的解決方法

標(biāo)簽:遼寧 益陽(yáng) 四川 營(yíng)口 內(nèi)江 銅川 本溪 玉樹

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ajax快速解決參數(shù)過(guò)長(zhǎng)無(wú)法提交成功的問(wèn)題》,本文關(guān)鍵詞  ajax,快速,解決,參數(shù),過(guò)長(zhǎng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ajax快速解決參數(shù)過(guò)長(zhǎng)無(wú)法提交成功的問(wèn)題》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ajax快速解決參數(shù)過(guò)長(zhǎng)無(wú)法提交成功的問(wèn)題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    正阳县| 容城县| 合山市| 张掖市| 涿鹿县| 酉阳| 沧州市| 静海县| 拉孜县| 麻阳| 卢氏县| 务川| 灵山县| 湖口县| 正镶白旗| 东莞市| 绥棱县| 德钦县| 柯坪县| 大宁县| 白城市| 竹山县| 资源县| 高陵县| 四平市| 甘孜| 白城市| 吕梁市| 安宁市| 天门市| 湖口县| 河东区| 铜梁县| 湘乡市| 金秀| 丰城市| 庆元县| 安塞县| 大渡口区| 兴化市| 南宁市|