返回列表 发新帖

jquery ajax post提交数据乱码

781.9k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,, o/ ^4 f+ \/ l
自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件2 e0 I  v  {2 f3 r/ }8 q
chrome和ie都没有指定,所以出现乱码问题.' X; L5 f* F, q9 S' L0 N! s
解决方法:! M* I/ G! N9 b' \
$.ajaxsetup({1 d" x& Q  f. S9 B6 t' Z
contenttype: application/x-www-form-urlencoded; charset=utf-8/ y; j8 k/ M9 j2 w  x. Z' J9 |: \
});5 i% P( y3 X+ _: [" U5 v' y
$.post(test.php, { name: i5a6, time: 2pm },7 V2 @( ?+ R7 e- |
function(data){
$ ~- E" x/ p+ X5 X) X# e process(data);! J. O3 n7 w& Z% ^# r
}, json);% W7 a- ?  f, `. G8 @$ L. k" k( J
或者使用:
6 j# ]6 z: s' O$ n' Z9 o" d8 E- Z+ j$.ajax({1 a9 J4 C. A2 }* x  e$ L# w. s
,
5 {- |, y; y4 k) a' U8 h+ m type:post,
' [& O2 A/ N) x data:data,0 F: Q2 K- f- z0 \) e
contenttype:application/x-www-form-urlencoded; charset=utf-8,+ m& {0 E+ X# ^8 q- f7 I/ Z- g
datatype:json,* V: {3 U* n: S8 ?* L  x
success: function(){
3 T6 w) |( w7 C9 p" ^$ `& f2 W ...7 e6 j2 l/ Y+ E; u
}
6 ~5 h! s: h4 H! l! k})
; l' Z9 F/ N* a9 B9 ~- ~9 V推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换
( E/ C; s, X9 ~$ x9 B' n总结一下ajax 提交数据乱码一些经验$ u$ N; v) }# O- k! k  E5 W1 T
为了避免乱码,可以做到以下几步
' M3 u8 J) X# w# K: l1 g解决方法
% w9 V- c8 {9 T; M& T5 V1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码' C/ \7 V( r# F4 W+ \
检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
* g5 j0 [) r' i$ s* A- J3 L建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码
# X/ S4 h5 Q3 ]' `2 C0 K2,使用post来发送而不是get% B. v  c1 O6 v: l
get方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。
6 X( i8 g; k. u# S0 m3,通过在js前端escape编码再发送,然后后台解码取得数据
+ L; C; e  N# r1 v. R# L- s# ]这些可以在网上搜索7 b. B/ }1 P, K) y4 X! K2 Z, A5 q
4,在全局设定contenttype,指定编码
/ Z! Q; n5 K, |因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)
9 w3 ?* y- _4 K# ~+ Z4 T$.ajaxsetup({& U1 X, g* \1 P
contenttype: application/x-www-form-urlencoded; charset=utf-8* ~  [& f6 ?8 Y# A1 K; ~3 `) t7 P9 v

5 `+ W# {- x$ y0 u" Z; V% c更多网页制作信息请查看: 网页制作

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