ajax如何传中文参数乱码解决办法
由于某种原因ajax默认就是uft-8的编码,那么我们使用一gbk就容易出现乱码的问题,下面我们就来告诉你php ajax乱码的解决方法吧。由于某种原因ajax默认就是uft-8的编码,那么我们使用一gbk就容易出现乱码的问题,下面我们就来告诉你php教程ajax乱码的解决方法吧。传递中文参数,然后修改数据库教程的。
简述为什么用ajax发送请求会出现乱码问题
你如果没有使用编码集过滤器,
就需要手动设置response的编码集
response.setCharacterEncoding("UTF-8");
这句话要放在这个方法的最前面,就是设置返回头的前面
如果页面传入的参数,在获取时乱码,则需要
request.setCharacterEncoding("UTF-8");
解决ajax回调函数返回的字符串乱码问题
找到问题了:
1、ajax请求失败,提示parsererror(到complete回调函数里看),所以不会执行success回调函数;
2、parsererror也就是说明数据解析出错了,也就是返回的数据格式有问题。post请求设置的格式是json,实际上返回的不是json;
实际返回的数据如下:
注意红色的部分,数据被压缩过了,当作json解析自然会出错;
3、如果把 post请求最后的 ‘json’ 参数去掉,会发现可以进入 success 回调函数,但此时response是个字符串而不是js对象,而且开头好像还有两个乱码,response.contents 成了 undefined。
--------
所以问题根源是:
服务端返回的是gzip压缩后的数据,不是json字符串。
问题就是这样的,解决方法考题主自己了。
还没有评论,来说两句吧...