如何解决JQuery ajaxSubmit提交中文乱码

一般人使用是

jQuery(form).ajaxSubmit({ url: "ajaxsub.aspx?abc=test", type: "post", dataType: "json", success: data });

分析:JQuery的AJAX提交,会将要提交的数据进行编码,使用encodeURIComponent在js中处理数据。因此,无论是 Firefox或者IE,提交的数据都是一致的,都是UTF-8编码后的数据。

查看Header,发现Entity中的Content-Type存在差异

在Firefox中,Content-Type指定了字符集为utf-8。

而IE里面却没有任何字符集指定,

显然,默认情况下,AJAX的异步提交的字符编码应该和网页本身保持一致,也就是说,Server端在没有发现显示的charset指定的情 况下,使用gb2312来解码数据(但是数据在提交前已经被UTF-8编码了),这就是为什么在IE下会出现乱码的根源,而在Firefox下,浏览器在 提交AJAX数据的时候,加上了charset的显示指定,导致Server端采用UTF-8来解码数据(正确解码)。

查阅JQuery的AJAX工具函数的说明,发现options中有一个指定content-type的参数

所以在提交的时候要指定编码类型

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

即如下

jQuery(form).ajaxSubmit({ url: "ajaxsub.aspx?abc=test", type: "post", dataType: "json", contentType: "application/x-www-form-urlencoded; charset=utf-8", success: data });

以上内容给大家分享了如何解决JQuery ajaxSubmit提交中文乱码,希望对大家有所帮助。

时间: 2024-07-31 02:12:05

如何解决JQuery ajaxSubmit提交中文乱码的相关文章

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

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

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

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

APS.NET和MVC3解决jQuery中Ajax的乱码问题

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码. 转自http://blog.csdn.net/allsharps/article/details/6875419 解决jQuery中Ajax的乱码问题   $(document).ready(function(){   //    alert(encodeURI("我"));       $.ajax({url:"a.php?a=" + encodeURIComponent(&qu

解决javaWEB中前后台中文乱码问题的3种方法_java

中文乱码问题真的是一个很棘手的问题,特别是从前台传到后台之后,都不知道问题出在哪里了.现在分享解决javaWEB中前后台中文乱码问题的3种方法.方法一:tomcat的自带编码是ISO-8859-1的格式,是不兼容中文的编码的.所以我们从后台接收的时候要注意. 采用相同的格式去接收(ISO-8859-1),然后用能解析的编码(utf-8)去转换.这样我们就能得到能兼容中文的格式了.这样处理之后发往前台.注意:发往前台的时候也需要设置一下resp.setContentType("text/html;

解决linux下vim中文乱码的方法_Linux

Vim编码的详细介绍 Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2.UTF-8 等流行的 Unicode 编码方式. Vim 有四个跟字符编码方式有关的选项,encoding.fileencoding.fileencodings.termencoding (这些选项可能的取值请参考 Vim 在线帮助  :help encoding-names),它们的意义如下:     1.encoding: Vim 内部使用的字符编码方式,包括 Vim 的

如何解决页面之间传输中文乱码的问题

如何解决页面之间传输中文乱码的问题hbzxf(阿好)http://www.cnblogs.com/hbzxf 有的时候我们需要在页面之间传输中文,但是.NET模认在Webconfig中为我们建立的编码格式为utf-8,于是在传输中文的时候变成了乱码,相应的接受也会是乱码信息,如何解决这个问题,我们可以用两种方法. 更改Webconfig中的编码方式,如下:1.在你的web.config中把编码 <globalization requestEncoding="utf-8" resp

java中编码问题导致ajax提交中文乱码

ajax碰到过两问题,一个是时间问题,一个是中文乱码问题. 因为项目都是在谷歌浏览器做的. 所以一直没有发现别的浏览器问题, 测试的时候才发现ie,360 等出现点击ajax所在的方法失效 刚开始一直以为是js不兼容. 调试下发现是前台传值发现乱码, 坑.. 然后 把中文先转码 最后后台再解码 就可以了.. 下面是决解方法 前台  url: "/yq1012/Ajax.php?name="+encodeURI(encodeURI(name)) 后台   name= java.net.U

解决springmvc+mybatis+mysql中文乱码问题_java

近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码 最初在mybatis配置如下 <select id="queryContentById" resultType = "java.lang.String" parameterType="String" > select text from News where id=#{o} </select> 其中表News的text字段为blob类型

Asp中使用JQuery的AJAX提交中文乱码解决方法

客户端页:client.html 复制代码 代码如下: <script>     //jquery的post     $.post     (         'server.asp',         {             Act:'DoSubmit',             UserName:escape('脚本之家'),//进行编码            WebSite:'www.jb51.net'         },         function(data)