我正在發(fā)出 ajax 發(fā)布請求,我可以看到該值正在客戶端的標(biāo)頭中傳遞。但是在服務(wù)器端收到的值是空白的?當(dāng)服務(wù)器試圖解析它時,它似乎被值中的某些東西阻塞了。因為如果我使用 encodeURIComponent 它工作正常。是什么導(dǎo)致了這種行為?<script> //var body = getDataFromTheEditor(); //doesn't work //var body = JSON.stringify(getDataFromTheEditor()); //doesn't work var body = encodeURIComponent(getDataFromTheEditor()); //works but don't want to do this... var params = {body: body}; $.post("../../../../CommitEdit", $.param(params));</script>小服務(wù)程序:protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String body = request.getParameter("body"); System.out.println(body); //blank if i pass it normally :(}我直接從標(biāo)題中復(fù)制了表單數(shù)據(jù),因為它正在傳遞(所以這里有一些服務(wù)器顯然不喜歡的東西):pastebin - 未解析的表單數(shù)據(jù)pastebin - 解析的表單數(shù)據(jù)相關(guān)請求標(biāo)頭:Content-Length: 64488
Content-Type: application/x-www-form-urlencoded; charset=UTF-8有任何想法嗎?謝謝。
2 回答

慕哥6287543
TA貢獻1831條經(jīng)驗 獲得超10個贊
這可能是由于 Web 服務(wù)器設(shè)置中的一些安全規(guī)則造成的。您可以使用以下方法在 Java 中解碼您的數(shù)據(jù):
String res= java.net.URLDecoder.decode(body, "UTF-8");

蕪湖不蕪
TA貢獻1796條經(jīng)驗 獲得超7個贊
問題是因為字符串太長。顯然 Eclipse 中的控制臺有字符限制。這就是為什么我看到一個空白值。這里的這個問題幫助解決了這個問題:
解決方案是:
轉(zhuǎn)到窗口 > 首選項 > 運行/調(diào)試 > 控制臺
取消選中“限制控制臺輸出”(或者,您可以增加控制臺緩沖區(qū)大小。)
添加回答
舉報
0/150
提交
取消