当前位置: 移动技术网 > IT编程>脚本编程>Ajax > 如何解决JQuery ajaxSubmit提交中文乱码

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

2017年12月12日  | 移动技术网IT编程  | 我要评论

一般人使用是

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提交中文乱码,希望对大家有所帮助。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网