返回列表 发新帖

jquery ajax post提交数据乱码

781.8k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,
( y  S% L8 w. b9 H7 e1 @  \自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件; n8 p* _. X- n: k6 }
chrome和ie都没有指定,所以出现乱码问题.' _! N! u0 I) u
解决方法:* Z$ X6 _8 |; I5 T
$.ajaxsetup({
3 Y5 P# r* N  e! r2 x0 ~' u, _0 a( r contenttype: application/x-www-form-urlencoded; charset=utf-8
' s5 s& ~2 U. P/ |! ]& U});! D/ P' r6 T; a1 {1 y
$.post(test.php, { name: i5a6, time: 2pm },! L- h/ c/ @+ O
function(data){
: P2 F& M/ h' v, q4 x process(data);2 ]% M7 B8 t# @% K
}, json);' J) t& c8 l( r
或者使用:
" r5 k1 s  |% o& ^$.ajax({
) i- p$ ?5 D: I- y6 A7 X/ E ,
$ T$ z0 b1 U2 g8 { type:post,
; X% |0 Z9 A& m& R7 M+ y data:data,
& a& ^+ @2 i) i$ v5 r$ D/ G. ]8 ` contenttype:application/x-www-form-urlencoded; charset=utf-8,
' ?2 x  P, @2 y; | datatype:json,
5 ?/ B; x& V1 y  [% c success: function(){
4 F4 Y+ l" E5 M5 S. L ...
: U& p5 i8 o5 C* j& C }% H2 G  _. V1 x6 K
})* m+ ?0 w  k) s" `% J5 R
推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换
6 X8 e0 G0 Z5 m7 F* X0 v6 P# ?总结一下ajax 提交数据乱码一些经验
5 R& z$ d9 Q) ^! P0 o为了避免乱码,可以做到以下几步
2 M: y) m2 |1 V1 ^, s$ |* X$ r解决方法2 {0 b2 ~; i! t9 r
1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码$ @, t9 E, i7 M. k
检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />) Z3 N) U  ?( k: e
建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码
2 I2 [& ~5 b  h' f+ A2,使用post来发送而不是get/ q; x9 Z6 C5 E
get方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。7 V, N* J4 O4 D$ S7 q) T: K/ \
3,通过在js前端escape编码再发送,然后后台解码取得数据
/ G% {7 u: A! ?9 u" R8 @这些可以在网上搜索3 z3 i9 m8 c5 v( S
4,在全局设定contenttype,指定编码
: L6 y% q+ g7 [0 b  x* ?4 J$ K因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)1 C5 P1 r- i3 o0 c0 d# C
$.ajaxsetup({
! K+ U4 S" ^  v" a! n  Z( C0 h, jcontenttype: application/x-www-form-urlencoded; charset=utf-8
9 }) x' ^6 l9 v  [
4 H& e( r1 v" s0 H更多网页制作信息请查看: 网页制作

回复|共 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客服 返回顶部
快速回复 返回顶部 返回列表