微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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是直接能用的)}

原文地址:https://www.jb51.cc/ajax/162887.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐