为了账号安全,请及时绑定邮箱和手机立即绑定

服务器无法解析ajax post参数中的某些内容,这是什么原因造成的?

服务器无法解析ajax post参数中的某些内容,这是什么原因造成的?

手掌心 2022-01-12 10:05:59
我正在发出 ajax 发布请求,我可以看到该值正在客户端的标头中传递。但是在服务器端收到的值是空白的?当服务器试图解析它时,它似乎被值中的某些东西阻塞了。因为如果我使用 encodeURIComponent 它工作正常。是什么导致了这种行为?<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>小服务程序: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 :(}我直接从标题中复制了表单数据,因为它正在传递(所以这里有一些服务器显然不喜欢的东西):pastebin - 未解析的表单数据pastebin - 解析的表单数据相关请求标头:Content-Length: 64488 Content-Type: application/x-www-form-urlencoded; charset=UTF-8有任何想法吗?谢谢。
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

这可能是由于 Web 服务器设置中的一些安全规则造成的。您可以使用以下方法在 Java 中解码您的数据:

String res= java.net.URLDecoder.decode(body, "UTF-8");


查看完整回答
反对 回复 2022-01-12
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

问题是因为字符串太长。显然 Eclipse 中的控制台有字符限制。这就是为什么我看到一个空白值。这里的这个问题帮助解决了这个问题:

解决方案是:

  1. 转到窗口 > 首选项 > 运行/调试 > 控制台

  2. 取消选中“限制控制台输出”(或者,您可以增加控制台缓冲区大小。)


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 244 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信