返回列表 发新帖

jquery ajax post提交数据乱码

781.8k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,
/ Q  v+ r5 i( N/ r( F自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件
$ f0 c" `- W- r; z0 b( U! Vchrome和ie都没有指定,所以出现乱码问题.; U$ w. _# a# U0 `! F4 `! ~) G
解决方法:
& D- P- N. r# W2 `' d. p. \% [$.ajaxsetup({
$ |: }- w3 c% J9 q+ x contenttype: application/x-www-form-urlencoded; charset=utf-8
1 M( V5 ?  ]* Y/ g. W# O. o! ^});
; Q9 @' J9 z& M$ c0 X: _) p+ d1 F$.post(test.php, { name: i5a6, time: 2pm },
4 }- D9 [0 ]/ w: e( @! x' g function(data){
5 J* @1 H  x- ] process(data);2 d% ^7 w, I8 T, m3 t! ?3 K
}, json);
- x$ g2 P8 ^! b6 U或者使用:
, O7 d- ]) Y$ X' G3 J, s3 Q5 m/ J$.ajax({, l! r! d9 \% o8 H$ S: e: l
,3 W. k1 i6 L  j2 A
type:post,
  N0 |* ~3 h7 U9 O* r" ^$ a4 Z data:data,& e$ b( p5 Y1 m# p) w1 f/ E
contenttype:application/x-www-form-urlencoded; charset=utf-8,
' ]) i/ l2 S# q9 a: b3 k datatype:json,% a8 ^; O0 j, X) x3 q5 S! S) @
success: function(){; ~3 h2 N9 \; e% N2 X& Z6 F
...
% D( l1 F5 V" X+ Z1 L. ]. M }. g; ?; |* j3 v( W: B5 Z
})  X# u2 V$ ?+ a; p2 }# j  E, h
推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换
( S1 G+ N( q! m) Q- z总结一下ajax 提交数据乱码一些经验
7 W: J7 ^2 S: U; \为了避免乱码,可以做到以下几步' d6 s; u) ]2 C! ~# g
解决方法
; t  B& x( R7 E) e7 _, Q- C1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码
& z  j' r' ]5 P( J检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />. ?' y. g* P' A
建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码% S# m* \1 o( P" X- H. n* _  m  P
2,使用post来发送而不是get
& ]7 V& x# H, D. f, Y; ]get方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。$ j% k7 f9 C, h2 [' T6 h4 |( N
3,通过在js前端escape编码再发送,然后后台解码取得数据
' ~; T7 h" e: I( i这些可以在网上搜索
$ D, [) j( ^4 T+ H6 t4,在全局设定contenttype,指定编码$ [3 E2 ]" k* A
因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)9 T6 e% B' [1 F+ x  V/ ^. u, y
$.ajaxsetup({
4 {* ?' z; w" x% `8 j8 Ycontenttype: application/x-www-form-urlencoded; charset=utf-8
1 p: [' y: a0 n. X1 r7 h' W
3 T6 t/ Z+ |% U6 ]" a( n更多网页制作信息请查看: 网页制作

回复|共 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技术交流平台 版权所有 All Rights Reserved. Powered by Discuz! X5.0 鄂ICP备15006301号-5|鄂公网安备 42018502006730号
关灯 在本版发帖 扫一扫添加QQ客服 返回顶部
快速回复 返回顶部 返回列表