返回列表 发新帖

jquery ajax post提交数据乱码

782.2k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,
  t8 Q- R$ D# S. Q4 |4 o6 j7 L自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件
; k/ f1 z5 y5 F, ?+ fchrome和ie都没有指定,所以出现乱码问题.
+ ]! @7 z1 I, O0 j解决方法:6 l9 f8 c- V; b8 G9 @
$.ajaxsetup({
6 G+ N. s  K. `0 K9 m! `# x contenttype: application/x-www-form-urlencoded; charset=utf-8
. d4 E2 e2 T& b& G: f});
. u) |+ t4 t+ D" ?; l8 _: r$.post(test.php, { name: i5a6, time: 2pm },+ i6 {5 W' l. h
function(data){
+ t* u# U4 e1 L! c. ^ process(data);
4 q( D5 i" @+ ^( [& O" e }, json);  H0 L: x+ ]6 N  K6 K! ~
或者使用:
: J) K: i6 y3 ]$.ajax({, K+ M" z5 }0 q( N4 |7 {$ G; a5 [* t4 o
,
: K3 Q# W0 N) G type:post,
) n* n/ s$ Q* R7 z( x5 w data:data,0 n# k- K/ d. _5 }
contenttype:application/x-www-form-urlencoded; charset=utf-8,3 d1 F. J" l/ I* K, s
datatype:json,; K8 l  n' z: F: C8 o5 |3 p$ Q
success: function(){( a* n1 _6 n+ F
...
: t) s; L( U7 s: u' |! b }
. F  O" C6 n; l9 P! d})
9 ?  E6 [) F1 i( ]+ B+ \6 y推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换
% E$ _. \4 ?" {; H总结一下ajax 提交数据乱码一些经验
3 x& p! j& y  n6 z* p$ [为了避免乱码,可以做到以下几步4 {( Y' \. P% N2 N1 w
解决方法
3 c2 M, b4 G4 l2 k$ m1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码* U, n0 m4 W7 J# L& ?/ j- t' C
检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />7 `6 b2 \. g; z* v; Q( u
建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码
- Q3 q9 M3 c; w$ T9 F6 \2,使用post来发送而不是get
/ c, f; G0 j' i  Pget方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。# q' {$ C/ m# t8 m/ t
3,通过在js前端escape编码再发送,然后后台解码取得数据3 [: m/ u6 e2 o5 L6 |  I1 R
这些可以在网上搜索$ D8 E' C/ |( A8 T. \) H, ~
4,在全局设定contenttype,指定编码; Z1 N' t3 J2 u& r, A- d5 K& H
因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)5 @8 E/ P3 \. G5 |& _  K
$.ajaxsetup({- C4 E7 }% }: y: x
contenttype: application/x-www-form-urlencoded; charset=utf-84 w* e9 ^, B$ X- U
9 i) F1 U% l9 K  a' L
更多网页制作信息请查看: 网页制作

回复|共 8 个

gevaemaidovef 发表于 2015-12-21 16:41:55|美国 | 查看全部
这话从何说起那~~~
buingeEvineus 发表于 2015-12-21 16:42:04|奥地利 | 查看全部
求您了,给个机会
gevaemaidovef 发表于 2015-12-21 16:42:05|美国 | 查看全部
要睡觉了 呵呵
Mqokjdvq 发表于 2015-12-21 16:42:39|比利时 | 查看全部
想骂你.却不知道从何骂起.
bqtklouu 发表于 2016-1-31 17:05:20|河北 | 查看全部
呵呵 哪天得看看 `~~~~
wwzcdenleclv 发表于 2016-1-31 17:05:29|美国 | 查看全部
这个论坛值得推荐,给了我们这么好的一个平台
buingeEvineus 发表于 2016-1-31 17:06:03|美国 | 查看全部
做为新人!在这里不敢大声说话!送完经验我就走!
seazvyt 发表于 2016-1-31 17:06:10|北京 | 查看全部
呵呵 放心 如我算错 你以后来砸我的帖子 呵呵

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

得知互动是一个融创意、设计、开发、营销、生活、互联网于一体的专业交流分享平台。
Copyright © 2026 得知互动-专注Ai与站长技术交流社区-Ai交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表