• 技术文章 >web前端 >js教程

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

    亚连亚连2018-05-25 09:47:45原创1466
    本文给大家分享jquery ajax submit提交中文乱码问题的解决办法,感兴趣的朋友跟着我一起来学习吧

    一般人使用是

    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 ajax 返回json时出现中文乱码该如何解决

    Django框架如何使用ajax的post方法

    详解ajax +jtemplate实现动态分页

    以上就是如何解决JQuery ajaxSubmit提交中文乱码的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ajaxSubmit JQuery 提交
    上一篇:JQuery ajax 返回json时出现中文乱码该如何解决 下一篇:JQuery ajax返回JSON时的处理方式

    相关文章推荐

    • 聊聊Node.js + worker_threads如何实现多线程?(详解)• 完全掌握JavaScript预编译过程• 总结分享一些使用jQuery实现的DOM操作(收藏)• 什么是Express中间件?Node中要怎么使用?• javascript怎么修改td的值

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网