返回列表 发新帖

jquery ajax post提交数据乱码

781.9k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,# f& R- H  P9 p* A7 T: N' j
自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件
' J. m. e% ~7 u- F; O* Q5 |6 wchrome和ie都没有指定,所以出现乱码问题.  k2 o( J) {7 R& g# q) t
解决方法:
* `0 |2 b0 f8 }2 ]. U8 b+ l  n$.ajaxsetup({
' d% ^% p4 @3 L& s1 O8 D! y, u contenttype: application/x-www-form-urlencoded; charset=utf-8
; f7 l* a( e# Y2 ?  r( q& X});
+ S/ M8 R. {# g& K, E# c* z0 e$.post(test.php, { name: i5a6, time: 2pm },2 h+ H" e: r/ ]3 G& A
function(data){
5 U! x0 u, U+ Z% H& m& u- T process(data);% J' g' U4 d1 V
}, json);
0 X" I. X5 @' U# ^" ?! R8 z或者使用:" r* d0 s% r0 D1 I7 n% Y7 D+ x
$.ajax({
) B3 n5 @# @& w5 A6 S0 J4 Z ,
# U/ c- t; T+ S type:post,
5 d& S3 i' C% M: e) r( t& V$ ~! C9 K data:data,
- e- X5 K2 n, n contenttype:application/x-www-form-urlencoded; charset=utf-8,+ ?* l/ c3 j6 r% r2 m+ v- O
datatype:json,
; q3 f" g2 R: C0 z success: function(){; {6 {/ i3 W# |/ u2 r
...8 f' \& K; K& a1 n4 L4 [1 _
}
2 c( d; K9 M& I})3 V6 B; Q' k& v# @; a; U2 P  A3 q8 @
推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换: S( `/ J  [2 W& ~. B
总结一下ajax 提交数据乱码一些经验, ~) T2 r9 G. W+ `3 |4 m/ }
为了避免乱码,可以做到以下几步
2 h5 p9 ^3 d  @( c4 P解决方法
3 _$ |- n3 f' D$ A7 R, w% m9 h4 w( X4 c1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码6 V9 N& i% N: o$ j4 T
检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
( }9 v* I' X! V2 S: H建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码
/ n1 ]" G/ ?' B+ ~2 [3 Q2,使用post来发送而不是get  I2 `9 \& Q" v  |
get方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。& K& F  |  [7 T
3,通过在js前端escape编码再发送,然后后台解码取得数据
% g) X/ [* e( t% |" P这些可以在网上搜索' M; J6 n0 g- Z: K: \# T
4,在全局设定contenttype,指定编码% Z$ R" [! B# M
因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)- {: C' }) J4 T8 {" `
$.ajaxsetup({
9 ~& {' ^& E0 L3 f+ y1 t$ B4 tcontenttype: application/x-www-form-urlencoded; charset=utf-8* Z# y, C1 t' h8 F- P! T

% j" \0 E7 ?2 v4 V. D更多网页制作信息请查看: 网页制作

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