jQuery技术

解决JQuery ajaxSubmit提交中文乱码的方法技巧

字号+ 作者:H5之家 来源:H5之家 2016-12-13 17:06 我要评论( )

解决JQuery ajaxSubmit提交中文乱码的方法技巧 一般人使用是 jQuery(form).ajaxSubmit({ url: ajaxsub.aspx?abc=test,type: post, dataType: json, success: dat

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


本文地址:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • GA小技巧:使用jQuery来方便的布置事件跟踪代码

    GA小技巧:使用jQuery来方便的布置事件跟踪代码

    2016-12-13 18:00

  • web前端必学的8个jQuery小贴士和技巧!

    web前端必学的8个jQuery小贴士和技巧!

    2016-12-13 13:04

  • Jquery常用技巧收集整理篇

    Jquery常用技巧收集整理篇

    2016-12-11 12:08

  • [译] 人人须知的 jQuery 技巧

    [译] 人人须知的 jQuery 技巧

    2016-12-10 17:04

网友点评