gpt4 book ai didi

java - 在 ajax post 请求中发送特殊字符时出现问题

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:10 24 4
gpt4 key购买 nike

我在 ajax POST 请求中发送特殊字符时遇到问题,发送请求的 servlet 无法正确接收这些特殊字符。JavaScript 代码:

myAjaxPostrequest=new GetXmlHttpObject();
var parameters1="content="+mainContent;
myAjaxPostrequest.open("POST", "controller", true);
myAjaxPostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
myAjaxPostrequest.send(parameters1);

Servlet 代码:

String lsContentToSave = aoReq.getParameter("content");
System.out.println(lsContentToSave);

aoReq 是 HttpServletRequest 对象。

例如。如果特殊字符是 »,则打印 »

我也尝试过 jquery post,但仍然面临同样的问题。请让我知道此问题的解决方法。

最佳答案

您标记了 jquery-ajax,但您问题中的 JS 代码无法识别为 jQuery。你真的使用jQuery吗? ?这看起来更像是对糟糕的 w3schools 教程的抄袭。

无论如何,您需要在两个地方考虑​​字符编码。在客户端,当您对参数进行形式编码时,您应该使用 encodeURIComponent() .这将适用 percent encoding使用 UTF-8。

var parameters = "content=" + encodeURIComponent(mainContent);
// ...

在服务器端,从请求正文中获取任何参数之前,您应该将请求编码设置为UTF-8,如下所示:

request.setCharacterEncoding("UTF-8");
// ...

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

就是说,如果您真的使用 jQuery,那么您不必担心在客户端使用 encodeURIComponent()。如果你使用 $.post(),jQuery 会为你处理这一切。函数与数据对象。

$.post('controller', { 'content': mainContent}, function() {
// Callback function here.
});

关于java - 在 ajax post 请求中发送特殊字符时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com