jQuery ajax乱码问题解决
一、测试环境
jQuery:1.3.2
tomcat:5.5.17
二、测试方法
1.使用get方式
服务器端java代码:
String name = new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");
客户端js代码:
$.ajax({url: "2.jsp",type: "get",data: {name:"中文"},success: function(response){
alert(response);
}});
结果:正确显示
$.ajax({url: "2.jsp",type: "get",data: "name=中文",success: function(response){
alert(response);
}});
结果:乱码
$.get("2.jsp", { name: "中文" },function(response){
alert(response);
});
结果:正确显示
$.get("2.jsp", "name=中文",function(response){
alert(response);
});
结果:乱码
2.post方式
服务器端java代码:
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
客户端js代码:
$.ajax({url: "3.jsp",type: "post",data: "method=testAjaxPost&name=中文",success: function(response){
alert(response);
}});
结果:正确显示
$.ajax({url: "3.jsp",type: "post",data: {name:"中文"},success: function(response){
alert(response);
}});
结果:正确显示
$.post("3.jsp", { name: "中文" },function(response){
alert(response);
});
结果:正确显示
$.post("3.jsp", "name=中文",function(response){
alert(response);
});
结果:正确显示
三、使用filter
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
if (req.getHeader("X-Requested-With") != null && req.getHeader("X-Requested-With").equalsIgnoreCase("XMLHttpRequest")) {
request.setCharacterEncoding("utf-8");
} else {
request.setCharacterEncoding("gbk");
}
chain.doFilter(request, response);
}
jQuery在使用ajax的时候会在header中加入X-Requested-With,值为:XMLHttpRequest,filter中判断是jQuery的ajax请求时就把字符编码设为utf8,这样可以解决post提交中的中文乱码问题,不需要在代码中设置request.setCharacterEncoding("UTF-8");
对于get方式的中文乱码问题,建议不使用get方式提交中文,统统改为post ^-^
为了和prototype.js处理中文的方式一致,可以使用如下的方式,自定义header中的属性RequestType
$.ajax({
url: "3.jsp",
type: "post",
data: {name:"中文"},
beforeSend: function(XMLHttpRequest){
XMLHttpRequest.setRequestHeader("RequestType", "ajax");
alert("开始");
},
success: function(data, textStatus){
alert(data);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert("错误:" + textStatus);
},
complete: function(XMLHttpRequest, textStatus){
alert("完成:" + textStatus);
}
});
filter代码如下:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
if (req.getHeader("RequestType") != null && req.getHeader("RequestType").equalsIgnoreCase("ajax"))) {
request.setCharacterEncoding("utf-8");
} else {
request.setCharacterEncoding("gbk");
}
chain.doFilter(request, response);
}
分享到:
相关推荐
### jQuery + ASP AJAX 中文乱码问题解决方案 在开发基于jQuery和ASP的Web应用程序时,中文乱码问题可能成为困扰开发者的一大难题。特别是在使用Ajax进行前后端数据交互时,中文字符可能会出现乱码现象,影响用户...
解决JQuery AJAX中文乱码问题的步骤如下: 1. **设置请求编码**:在发送AJAX请求时,确保请求头中的`Content-Type`设置为`application/x-www-form-urlencoded;charset=UTF-8`。对于JQuery,你可以这样做: ```...
简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题
然而,在处理中文字符时,Ajax请求可能会遇到乱码问题,这主要是由于编码格式不一致或者处理不当导致的。本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**...
### GBK编码下jQuery_Ajax中文乱码解决方案 #### 背景介绍 在Web开发过程中,使用Ajax技术与服务器端交互数据时经常会遇到字符集编码的问题,尤其是在使用GBK编码的环境中,通过jQuery发起的Ajax请求往往会导致...
### jQuery中文乱码完美解决方案 在处理Web应用中,尤其是涉及到多语言环境时,中文乱码问题时常困扰着开发者。本文将深入探讨jQuery在处理中文数据时遇到的乱码问题,并提供一系列有效的解决方案。 #### 一、理解...
在使用jQuery的AJAX方法进行数据交互时,有时会遇到中文字符乱码的问题。这是因为浏览器、服务器和前端之间编码不一致导致的。本文将详细解释这个问题,并提供有效的解决方案。 首先,我们要理解AJAX(Asynchronous...
本文将深入探讨jQuery中的Ajax过滤器及其在Ajaxform表单提交中的应用,以及如何解决可能出现的乱码问题。 首先,让我们理解什么是jQuery Ajax过滤器。在jQuery中,`ajaxSend`、`ajaxComplete`、`ajaxSuccess`、`...
总结来说,解决JQuery AJAX提交中文乱码问题的关键在于确保客户端和服务器端字符编码的一致性。可以通过在AJAX请求中显式地设置字符集为UTF-8来解决,从而让服务器端能够正确地解码请求中的中文字符。这不仅适用于GB...
【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...
在IT领域,特别是Web开发中,遇到“Ajax提交乱码”的问题是非常常见的,尤其是在处理中文或其它非英文字符集时。根据给定的文件信息,我们可以深入探讨如何使用Jquery来解决这一问题。 ### Ajax提交乱码问题的本质 ...
AJAX提交中文乱码解决方法在Asp中使用JQuery AJAX(Asynchronous JavaScript and XML)是一种异步请求数据的技术,用于实现网页的局部刷新,而不需要重新加载整个网页。然而,在使用AJAX时,中文乱码问题经常会出现...
在开发Web应用时,我们经常会遇到前端与后端交互的问题,特别是使用jQuery的Ajax与Servlet进行数据通信时,乱码问题是一个常见的困扰。本文将详细解释如何解决jQuery Ajax向Servlet传递参数时出现的乱码问题。 首先...
中文乱码问题在AJAX应用中时有出现,主要表现为从服务器获取的数据在前端显示时出现乱码。本篇文章将对AJAX中文乱码问题进行深入探讨,并提供解决策略。 1. 乱码产生的原因 - 数据编码不一致:服务器返回的数据...
本示例将涵盖如何使用jQuery实现自动补全功能,包括解决中文乱码问题以及常用属性配置。 ### 1. jQuery自动补全基本原理 jQuery 自动补全基于jQuery库,通过监听用户在输入框中的输入事件,实时查询预定义的数据集...
"jquery ajax post提交数据乱码"这个问题主要是由于不同浏览器对数据编码方式的处理不一致造成的。当我们在Firefox下测试时,一切正常,但在Chrome或IE内核的浏览器上,用户可能会遇到乱码问题。这通常与页面的字符...
标题“jquery的ajax例子无错版”表明这是一个关于jQuery AJAX用法的示例,且已针对可能出现的编码问题进行了处理,确保在utf_8和gb2312两种常见字符编码下都能正常显示,避免了乱码问题。在多语言网站或者处理中文...
例如,使用jQuery的`$.ajax`方法: ```javascript $.ajax({ url: '/your-endpoint', type: 'GET', dataType: 'html', // 指定返回数据类型为HTML success: function(response) { var decodedHtml = ...