前端之家收集整理的这篇文章主要介绍了
ajax发送请求乱码,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
ajax发送端应该把包含有中文参数的url编码2次如下:
var url="savePoints.jsp?lng="+lng+"&lat="+lat+"&high="+altitude+"&address="+address+"&info="+info+"×tamp="+new Date().getTime();
url=encodeURI(encodeURI(url));//一定要是2层编码
$.post(url,function(data){alert("保存成功!");});
action接收端在取中文参数时应该解码如下才能恢复成中文
import java.util.*,java.text.*;
String info = java.net.URLDecoder.decode(request.getParameter("info"),"utf-8");
而接收结果乱码则需要通常的情况是在web.xml中加字符过滤器,
或者
或者
ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8");//解决乱码问题,没有这句,回调函数的内容可能乱码
ServletActionContext.getResponse().getWriter().write("字符串内容");//在写入之前执行上面一句,可以解决乱码<filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param></init-param><param-name>encoding</param-name><param-value>UTF-8</param-value><init-param></init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>publicStringbusinessShop(HttpServletResponseresponse,HttpServletRequestrequest){response.setCharacterEncoding("utf-8");//业务逻辑(这个response是直接能用的)}