淘先锋技术网

首页 1 2 3 4 5 6 7

最近在使用 jQuery 的 Ajax 发起 Post 请求时,遇到了乱码的问题。

具体表现是,当在请求体中设置了中文参数时,服务器端接收到的参数变成了一堆乱码。例如,发送的请求体是:

name=张三&age=18

在服务器端接收到的就变成了:

name=%D5%C5%BD%AD&age=18

经过调试发现,这是由于发送的请求体是以表单形式提交的,而表单默认使用的是 ISO-8859-1 编码格式。而服务器端使用的是 UTF-8 编码格式,所以在接收参数时就出现了乱码。

解决这个问题的方法比较简单,只需要设置请求头中的 Content-Type,让其使用 UTF-8 编码格式即可。

$.ajax({
url: "/api/xxx",
type: "POST",
data: {
name: "张三",
age: 18
},
contentType: "application/x-www-form-urlencoded;charset=utf-8",
success: function(res) {
console.log(res);
}
});

这样就可以顺利地接收到服务器端传回的正确数据。

总之,在使用 jQuery Ajax 进行 Post 请求时,一定要注意编码格式的问题,避免造成不必要的乱码。