阿贾克斯电话

  $.ajax({
            url : URL_SERVER + "SucheMitarbeiter",
            type : "GET",
            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
            data : {
                userid : setzeUserId,
                nachname : nachname,
                vorname : vorname,
                kim : "",
                pnr : ""
            },
            cache : false,
                              [...]


这是对我的Servlet的请求

Request URL: http://localhost:8080/TrackingToolDB/SucheMitarbeiter?userid=BKOUBIK&nachname=sch%C3%B6nleber&vorname=&kim=&pnr=&fk


如您所见,Nachname未编码为UTF-8。

在我名为Servlet的Servlet中,我尝试对请求进行解码:

String encoding = request.getCharacterEncoding();
if (encoding == null) encoding = "UTF-8";

String nachname = request.getParameter("nachname");


nachname = URLDecoder.decode(nachname,encoding);


但这行不通。我总是


舍恩贝尔
代替
Schönleber

最佳答案

contentType设置为ajax请求的一部分只会告诉接收服务器您要发送的内容,它不会改变数据-您需要先将其传递给适当的编码函数。

您可能会发现此链接有用:MDN

09-25 22:04