最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:56:48
文檔

ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理

ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理:這次給大家?guī)?lái)ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理,處理ajax參數(shù)過(guò)長(zhǎng)無(wú)法提交的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。查了很多資料都說(shuō),get方法的參數(shù)是有限制的,post方法的參數(shù)的長(zhǎng)度是無(wú)限制,這也是post相比get的優(yōu)勢(shì)一直。在ajax中使用p
推薦度:
導(dǎo)讀ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理:這次給大家?guī)?lái)ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理,處理ajax參數(shù)過(guò)長(zhǎng)無(wú)法提交的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。查了很多資料都說(shuō),get方法的參數(shù)是有限制的,post方法的參數(shù)的長(zhǎng)度是無(wú)限制,這也是post相比get的優(yōu)勢(shì)一直。在ajax中使用p

這次給大家?guī)?lái)ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理,處理ajax參數(shù)過(guò)長(zhǎng)無(wú)法提交的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

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

在ajax中使用post方法,用常規(guī)的參數(shù)格式:param1=a1¶m2=a2 ,當(dāng)參數(shù)長(zhǎng)度過(guò)長(zhǎng)時(shí),依然提交不成功。比如我們經(jīng)常這樣寫(xiě)一個(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開(kāi)發(fā)者工具進(jìn)行調(diào)試,在執(zhí)行完ajax代碼后,在F12工具中的network選項(xiàng)頁(yè)面中,可以看到發(fā)起的請(qǐng)求,這時(shí)候看到的請(qǐng)求的參數(shù)有錯(cuò)誤提示。

解決方法:

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

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的了。

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!

推薦閱讀:

ajax跨域訪問(wèn)報(bào)錯(cuò)501怎么處理

使用Ajax實(shí)現(xiàn)根據(jù)人力資源系統(tǒng)數(shù)據(jù)增加OA賬號(hào)的方法

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理

ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理:這次給大家?guī)?lái)ajax的參數(shù)過(guò)長(zhǎng)無(wú)法提交如何處理,處理ajax參數(shù)過(guò)長(zhǎng)無(wú)法提交的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。查了很多資料都說(shuō),get方法的參數(shù)是有限制的,post方法的參數(shù)的長(zhǎng)度是無(wú)限制,這也是post相比get的優(yōu)勢(shì)一直。在ajax中使用p
推薦度:
標(biāo)簽: 怎么解決 提交 怎么提交
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專題
Top