jQuery发请求传输中文参数乱码问题的解决方案

最近在做的需求,涉及到级联查询,需要根据上级下拉框的内容,查询出下级下拉框列表,因为级联只有两级,且后期对表中的数据几乎不会改动,所以我设计的表存的直接是中文。

菜单如下:

代码如下:

var url = "${basePath}/institutionConfig/getDepartmentByCenter.do?param=" + center;
$.get(url, function (data) {
 var list = data.data;
 for (var i = 0; i < list.length; i++) {
   departmentSelector += "<option value='" + list[i] + "' ";
   if (department && list[i] == department) {
    departmentSelector += "selected='selected'";
   }
   departmentSelector += ">" + list[i] + "</option>";
 }
 $("#accountDepartmentAdd").html(departmentSelector);
});

我用的是$.get(url, callback)向后台发送请求的,由于将参数直接以GET方式发送,所以浏览器对参数用URL编码进行了encode,而后台获取到的参数为:

可以看到,param接收到的是乱码。所以我进行了进一步的处理,即转码:

String center = new String(param.getBytes("iso8859-1"), "utf-8");

这样接收到的就是中文了。

但是这样的做法在测试环境竟然报错了,分析了下原因,发现测试环境接收到的就是正确的中文,转码后反而错了。所以,解决方案应该是改页面的请求。因为使用了GET方式导致的参数被编码了,所以改为POST请求,POST请求会提交原始数据:

var url = "${basePath}/institutionConfig/getDepartmentByCenter.do";
$.ajax({
  url: url,
  data: {"param": center},
  dataType: "json",
  type: "POST",
  success: function (data) {
   var list = data.data;
   for (var i = 0; i < list.length; i++) {
    departmentSelector += "<option value='" + list[i] + "' ";
    if (department && list[i] == department) {
     departmentSelector += "selected='selected'";
    }
    departmentSelector += ">" + list[i] + "</option>";
   }
   $("#accountDepartmentAdd").html(departmentSelector);
  }
 });

总结

以上所述是小编给大家介绍的jQuery发请求传输中文参数乱码问题的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JQuery发送ajax请求时中文乱码问题解决

    这篇文章主要介绍了JQuery发送ajax请求时中文乱码问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 先排除项目故障: 1.web.xml中是否配置了字符拦截器 <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter

  • JQuery ajax 返回json时出现中文乱码该如何解决

    使用jQuery ajax调用的返回json,中文乱码问题 Js代码如下: $.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('获取数据失败!'); }, success: function(json){ jsObject = eval(json); } }); return j

  • jQuery Ajax传值到Servlet出现乱码问题的解决方法

    最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如下: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/ht

  • jquery跨域请求示例分享(jquery发送ajax请求)

    jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数.原型如下: jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据. url: 发送请求的地址data : (可选) 待发送key/value参数callback: (可选) 载入成功时的回调函数主要用于客户端获取服务器JSON数据.简单示例: 服务器脚本,返回JSON数据: 复制代码 代码如下: // $.getJSON.php$

  • jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.JSON在前后台交互的过程中发挥着相当出色的作用. 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据.本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据.阅读本文的读者应该具备jQuery.Ajax.PHP相关知识,并能熟练运用. XHTML <ul id="use

  • jquery+ajax每秒向后台发送请求数据然后返回页面的代码

    复制代码 代码如下: <script src="../js/jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript"> function chlink() { var url = "../handler/userfirend.ashx"; $.get(url, function(data)

  • JQuery的Ajax中Post方法传递中文出现乱码的解决方法

    本文实例讲述了JQuery中Post传递中文出现的解决方法,即乱码ajax与jquery.ajax中文参数post传递乱码处理方法.分享给大家供大家参考.具体分析如下: 问题一: 今天在做项目时,需要用到Ajax,之前我在用GET方式传递中文参数时,只需要在后台程序中设置页面编码为GB2312即中文能正常显示,可是这次由于表单项目较多,不适合用GET方式传递,只能用POST方式,但发现后台程序中设置编码为GB2312时中文还是显示的乱码.经过一番研究问题才最终得到解决. 解决方法: 解决此问题的

  • js与jQuery终止正在发送的ajax请求的方法

    本文实例讲述了js与jQuery终止正在发送的ajax请求的方法.分享给大家供大家参考,具体如下: 核心:调用XMLHttpRequest对象上的abort方法 jquery的ajax方法有自己的超时时间设置参数: $.ajax({type:'POST', url:'b.php', data:'', timeout:5000, success:function(){ } }) 同时 1. $.get返回的数据类型是XMLHttpRequest,请参考手册.($.post.$.ajax.$.get

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

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

  • jQuery发请求传输中文参数乱码问题的解决方案

    最近在做的需求,涉及到级联查询,需要根据上级下拉框的内容,查询出下级下拉框列表,因为级联只有两级,且后期对表中的数据几乎不会改动,所以我设计的表存的直接是中文. 菜单如下: 代码如下: var url = "${basePath}/institutionConfig/getDepartmentByCenter.do?param=" + center; $.get(url, function (data) { var list = data.data; for (var i = 0; i

  • 动态加载iframe时get请求传递中文参数乱码解决方法

    当用户的页面需要动态加载iframe 时, 如果iframe的src中包传中文参数会出现编码错误:必须加编码,然后再解码. 编码:encodeURI(encodeURI("包含中文的串")) 解码:java.net.URLDecoder.decode("需要解码的串","utf-8"); 解决方案 使用 encodeURI('中文') 进行编码操作, js代码: 复制代码 代码如下: $(function() { $('#frame').attr

  • jquery ajax传递中文参数乱码问题及解决方法说明

    jQuery传递中文参数乱码,原因是默认的传递方式没有采用UTF-8,所有我们可以在传递参数的时候对参数进行编码,然后再操作,代码如下,红色的代码为传递的参数,已标注 复制代码 代码如下: smsubmitclick = function(){   $(document).ready(function(){       var name = $("#txt_name").val();       var type = $("#seltype option:selected&q

  • prototype 中文参数乱码解决方案

    在使用portotype,调用ajax方法时出现乱码,此时,获取页面中加入 可以试试;: Page.Response.Charset = "gb2312"; 如果不奏效,有人提供另外解决方案: 复制代码 代码如下: request: function(url) { this.url = url; this.method = this.options.method; this.encoding = this.options.encoding; var params = this.opti

  • JS传值出现中文参数乱码的解决方法

    本文实例讲述了JS传值出现中文参数乱码的解决方法.分享给大家供大家参考,具体如下: function PopupFK(cNum,type){ var url = "contract!Paying.action"; url = url + "?contract.contractNum="+cNum+"&payingType="+type; // if(isEmpty($(_this).attr("payId"))){ /

  • PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案

    php中DOMDocument对于xml操作我们只要是英文是没有问题了,但如果是中文字体就会有乱码问题了,下面我们就此问题给各位介绍一些解决办法吧. PHP的DOM内部是utf8机制的,在loadHTML时,是通过检查字符中meta的charset来设置编码的,如果没有charset,就当iso8859进行处理了,而这种情况下进行saveXML时,输出来的却是utf8,所以就看到乱码了. 这么说是不是还不太理解,举个例子: $xml = new DOMDocument(); @$xml->loa

  • 地址栏传递中文参数乱码在js里用escape转码

    乱码,乱码,头大,烦,话说设置Tomcat后可以解决,但有的时候不管用了,这时,我们可以考虑转码方式不直接传中文,在js里用escape转码,记得需要用两次,如: var str=escape("这是中文参数"); str=escape(str); xxx.do?name=str; 在后台通过一个类的方法再转回来: Escape.unescape(request.getParameter("name")); Escape类如下: 复制代码 代码如下: package

  • GET方法URL中传递中文参数乱码的解决方法

    1.在页面中对你的URL进行编码 使用------encodeURI(你要使用的中文参数值)如:...?username"+encodeURI("小甜甜") 2.在后台通过解码来接收该中文参数 使用----String name = new String(request.getParameter("username ").getBytes("iso8859-1"),"utf-8") 3.最好不要在URL中传递中文参数

  • 解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题

    新配置一个spring的MVC项目,发现对Get请求的中文参数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中),如下: <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param>

  • 关于Ajax请求中传输中文乱码问题的解决方案

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

随机推荐