JQuery中Ajax的Post提交在IE下中文乱码的解决方法

引言: 在JQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢?

问题的引入:


代码如下:

var regid = $('#oregion').combobox('getValue');
//var sname = $('#sname').val();
var sname = encodeURI($('#sname').val(),"UTF-8");
if(regid!=""&&regid!='undefined'){
$.ajax({
async: true,
type : "POST",
dataType : "json",
url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
success : function(data) {
if(data.mes!=""&&data.mes!=null){
$.messager.alert('Warning',data.mes);
return false;
}
}
});
}
}

以上的代码在FF/Chrome中,可以正常传递中文,但是在IE下,则存在问题,在后台输出的信息为乱码。

问题尝试办法:

1. 设置了 contentType: "text/plain; charset=utf-8", 问题依然存在

2. 重新检查了ajax代码所在的jsp页面,皆为使用utf-8,但是问题依然存在

3. 在后台的java代码中,强制使用utf-8、gbk、gb2312的编码转换, 问题依然存在

经过分析,判断其可能与浏览器或者JQuery中的内容传输有关,目前也无法准确的确定。

解决的办法:

前段:encodeURI($(dom).val(), "UTF-8"); 使用encodeURI进行编码

后端Java代码:

URLDecoder.decode(inputStr,"UTF-8"): 后端代码针对前段传递过来的字符串,进行解码。

总结:

最后就可以针对Ajax Post请求传递过来的字符串信息,就可以正常显示中文了。

(0)

相关推荐

  • JQuery AJAX提交中文乱码的解决方案

    现象如下: 1)在Firefox下,处理页面的编码为gb2312,提交数据没有问题,中文能够正确解析: 2)在IE8下,处理页面的编码为gb2312,提交中文数据出现乱码. 无论是$.post还是$.ajax,抑或$.ajaxSubmit(来自于Form插件),在之前的UTF-8编码的网站都没有出现过任何问题, 看来是由于提交数据的网页的编码格式造成的了.不管怎么样,既然是浏览器之间存在差异,还是从HTTP包来看有什么问题吧. 打开Fiddle,分别用Firefox和IE做一个AJAX提交(以用

  • IE下Ajax提交乱码的快速解决方法

    哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(parentid) function loadCity(parentid) { var city = '${hotel.city}'; $.ajax({ url: './listCity.jspx?prov='+ encodeURIComponent(parentid), type: 'GET', dataType: 'JSON', timeout: 5000,

  • ajax请求乱码的解决方法(中文乱码)

    今天遇到一个问题,有关ajax请求中传输中文,遇到乱码的问题. 如下代码: 复制代码 代码如下: function UpdateFolderInfoByCustId(folderId, folderName, custId) {    $.ajax({        type: "Post",        contentType: "application/x-www-form-urlencoded; charset=utf-8",        url: &qu

  • JQuery中Ajax的Post提交在IE下中文乱码的解决方法

    引言: 在JQuery的Ajax POST请求中,进行请求,其中的中文在后台,显示为乱码,该如何解决呢? 问题的引入: 复制代码 代码如下: var regid = $('#oregion').combobox('getValue'); //var sname = $('#sname').val(); var sname = encodeURI($('#sname').val(),"UTF-8"); if(regid!=""&&regid!='und

  • 浅谈jquery中ajax跨域提交的时候会有2次请求的问题

    我们平时在同域中请求页面什么的时候不会有这种情况,这种情况大多发生在移动端的跨域请求中发生的. 解决方法就是在服务端中加一层过滤HTTP请求的类型,把OPTION等不用的类型过滤掉.就是当请求为非 HTTP中的 GET 和 POST的时候就不执行下面的代码,这样就可以只执行一次请求了. 在ASP.NET中我们用 Request.ServerVariables["REQUEST_METHOD"] == "POST" 或者 Request.ServerVariables

  • jQuery ajax方法传递中文时出现中文乱码的解决方法

    本文实例讲述了jQuery ajax方法传递中文时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 使用jQuery的ajax方法,在传递中文时出现中文乱码,按照以前的方法,修改了jquery文件中的ajaxSetting也不好使 复制代码 代码如下: sajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charse

  • java表单提交中文乱码的解决方法

    本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&

  • springmvc 发送ajax出现中文乱码的解决方法汇总

    使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的??,研究了一下,有几种解决办法. 我使用的是sping-web-3.2.2,jar   方法一: 在@RequestMapping里面加入produces = "text/html;charset=UTF-8" @RequestMapping(value = "/configrole", method = RequestMethod

  • ASP.NET中Request.Form中文乱码的解决方法

    背景 涉及到两个网站的通信,网站A有一页面a,用提交表单的方式,传值到网站B的页面b.网站A统一用UTF-8编码,网站B统一用GB2312编码. web.config中编码的设置 网站A:<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" /> 网站B:<globalization requestEncoding="gb2312" responseEnc

  • IE浏览器在post提交时中文乱码的解决方法

    现在遇到的问题是在页面和服务器端都配置了字符编码uft-8,但是在提交时火狐,chrome都没有问题,ie8确出现了中文乱码,采用的解决方法是在网页端转码,在服务器端再转回来,实例: 客户端: 复制代码 代码如下: userName = encodeURI(userName); post提交后 服务器端: 复制代码 代码如下: response.serContentType("text/html;charset=utf-8"); String keyword= request.getP

  • JQuery异步获取返回值中文乱码的解决方法

    用jqgrid异步获取列表值,遇到个问题,服务器端从数据库取到的数据没有出现中文乱码问题(日志打出来是没有乱码的),但是异步传到客户的时候却出现了乱码. 服务器端已经编码过了(UTF-8编码).开始一直怀疑是客户端的问题,比如客户端和服务器端编码不一致啊,也怀疑是不是jqGrid工具函数中少配了 contentType: "application/x-www-form-urlencoded; charset=utf-8",   等等问题. 结果都不是,纠结了几个小时,后来经过大牛的提醒

  • Jquery中ajax提交表单几种方法(get、post两种方法)

    在jquery中ajax提交表单有post与get方式,在使用get方式时我们可以直接使用ajax 序列化表单$( 表单ID) serialize();就行了,下面我来介绍两个提交表单数据的方法.$get方式提交表单get() 方法通过远程HTTP ,下面我来介绍两个提交表单数据的方法. $get方式提交表单 get() 方法通过远程 HTTP GET 请求载入信息 格式 $(selector).get(url,data,success(response,status,xhr),dataType

  • JQuery中Ajax()的data参数类型实例分析

    本文实例分析了JQuery中Ajax()的data参数类型.分享给大家供大家参考,具体如下: 前面简单分析介绍了<ajax中data传参的两种方式>,对于ajax参数传递方式有了初步的了解,这里就来进一步分析一下ajax中data参数的类型. 假如现在有这样一个表单,是添加元素用的. <form id='addForm' action='UserAdd.action' type='post'> <label for='uname'>用户名</label>:&

随机推荐