返回列表 发新帖

jquery ajax post提交数据乱码

782.0k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,* x3 C. H2 k$ n2 I7 r) e) B! O
自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件8 A, U  F& Y- x3 W
chrome和ie都没有指定,所以出现乱码问题.
! S/ ~  u# A2 E; A8 v, R: T" V8 k+ x解决方法:# |5 F  Y- {5 Z- `, Y# F0 M' T
$.ajaxsetup({
* M/ U; F; }( T8 q/ w# U4 f. g& X contenttype: application/x-www-form-urlencoded; charset=utf-8
: E  F" y+ K4 x6 M* x! t9 g});
6 @# C" E3 Q8 Z- W$.post(test.php, { name: i5a6, time: 2pm },( f+ M1 [- s0 h- R
function(data){
% g7 v: V4 d  \% q process(data);1 Q( [8 j* O! l1 v
}, json);) F5 c6 H- L( P! \
或者使用:+ O7 U( |5 W( q( z1 T+ r3 w' a
$.ajax({# o: ^" h% j0 y9 B) C4 p3 w1 j/ \0 R
,
7 D8 P6 j& W& v6 X- r, ?. y3 N0 L type:post,% k7 L% B2 _# a. a
data:data,
$ B; v3 P( w1 ] contenttype:application/x-www-form-urlencoded; charset=utf-8,0 r! D! j# i2 x; E6 ]* f' M2 C7 F
datatype:json,
" U+ b5 m3 e. } success: function(){
, H: T4 V5 \  N/ a1 g" J ...5 f) t: ]6 y. N1 b6 X
}3 G% _1 t- t9 w7 {& v
})
7 d% m7 Z( B' I0 U7 M7 Y推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换
, B( j. [5 p3 Y8 y1 e# e/ j' e' w总结一下ajax 提交数据乱码一些经验
5 J9 d6 d. _* J+ `( O  T) f为了避免乱码,可以做到以下几步! e* D! f0 A! b
解决方法8 S3 L; r8 L' \4 u- i0 W
1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码
# c. V1 C3 H1 v# K/ \  l3 `检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
7 h! s  S3 o$ d2 F0 b1 B4 s2 J- U' P建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码
# E% }9 M# x8 Q5 a2,使用post来发送而不是get3 l7 q7 g. `7 c! C, }; x' `; M
get方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。! e0 t0 h, k7 e
3,通过在js前端escape编码再发送,然后后台解码取得数据
. ^2 I. ~) ]- `* a5 ]% A- d这些可以在网上搜索
& M1 c( O# F" g* U/ a4 L- I4,在全局设定contenttype,指定编码+ x3 j2 Q# x" H4 Z1 i+ F) r
因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)
1 o% m) y0 `/ s" b% ^/ a2 U$.ajaxsetup({
: r" [+ P4 ~8 ]8 R) ?contenttype: application/x-www-form-urlencoded; charset=utf-85 b, i1 J! M7 r. p

7 b7 {" X+ ~5 h7 y2 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客服 返回顶部
快速回复 返回顶部 返回列表