您的位置:首页 > Web前端 > JQuery

jquery之交付序列化表单(serialize)及乱码处理

2017-07-16 11:33 351 查看
query之提交序列化表单(serialize)及乱码处理

1 提交乱码处理

JSP文件声明如下

[html] view
plain copy

<%@ page language="java" pageEncoding="UTF-8"%>  

  

<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>  

永久的处理方式:

修改jquery1.4.3.js源代码解决:

找到:

  contentType: application/x-www-form-urlencoded

替换为:

  contentType: "application/x-www-form-urlencoded;charset=UTF-8"

要不然,每个请求前都要加

[html] view
plain copy

contentType: "application/x-www-form-urlencoded;charset=UTF-8"  

[html] view
plain copy

$("#search_btn1").click(function(){  

            var submitData = $('#searchForm1').serialize();  

            alert(submitData);  

            $.ajax({  

                type: "POST",  

                dataType: "json",  

                contentType: "application/x-www-form-urlencoded;charset=UTF-8",  

                url: '${pageContext.request.contextPath}/jsonparam/getForm',  

                data: $('#searchForm1').serialize(),  

                success: function (data) {  

                    var f = data.success;  

                    if (data.success == true) {  

                        var retlist = data.result;  

                        alert(retlist.length);  

                      }  

                },  

                error: function(data) {  

                    alert("error:"+data.responseText);  

                 }  

      

            });  

    });  

2 从后台返回中文字符串,前台报错或者为乱码的处理

示例代码:添加发送信息前添加头部编码:

response.setCharacterEncoding("UTF-8"); 

//response.setContentType("text/html;charset=UTF-8"); 

PrintWriter out = response.getWriter(); 

out.print("测试");

如果是用jQuery.form.js提交form所产生的乱码:

找到这个jquery.form.js,将

[html] view
plain copy

var mp = 'multipart/form-data';  

修改成:

[html] view
plain copy

var mp = 'multipart/form-data;charset=UTF-8';  



使用$param的方法进行序列化的时候,是乱码的话,修改jquery-1.4.4.min.js

先搜索到:param:function

将里面的 encodeURIComponent改成

decodeURIComponent
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: