返回列表 发新帖

jquery ajax post提交数据乱码

782.0k 8
swmozowtfl 发表于 2015-7-9 23:18:15|湖北 | 查看全部 阅读模式
在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码," B: f3 l0 x5 J2 n
自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件; Y3 k6 v  U0 d7 {) L- O; ?* A
chrome和ie都没有指定,所以出现乱码问题.
% F8 Y. c; k( t! N5 o解决方法:
5 R! W4 O# V3 T6 K7 s6 X5 h$ X$.ajaxsetup({
: E; C- q; A6 U+ N6 B contenttype: application/x-www-form-urlencoded; charset=utf-8
- W6 D5 Z1 E7 U, Z! ~$ q});6 O% t" o( V- m7 a7 F& e/ @
$.post(test.php, { name: i5a6, time: 2pm },
2 r2 f& y' u2 R function(data){8 W# M8 x- h, k, ?) I8 Q3 d
process(data);
/ _1 ^3 l$ T+ J# u' n( |2 D' { }, json);
& R: y3 y7 g! m$ q3 c或者使用:( D+ I& n7 F, J
$.ajax({
  R: h; a( S4 E1 A( y5 q ,# d% A( P2 T2 L7 m5 B$ W2 T; n( b! m
type:post,8 \! b5 m, _3 G* Z) [
data:data,
+ l; @. W$ f7 k% s6 A% h/ K contenttype:application/x-www-form-urlencoded; charset=utf-8,7 A4 F, s/ F- g+ t7 \0 _  k+ S$ i
datatype:json,0 L, n! m! m  f* I+ z1 ?
success: function(){
! {. o1 G& r! h% w4 F6 z& n ...
  C: j8 ?. H% w; | }
, [0 r! g( W8 b8 R- z3 l( z})
; V# j+ h6 J+ b1 H7 n- n推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeuricomponent 做字符转换5 _6 m, v; o" p* g& [3 l
总结一下ajax 提交数据乱码一些经验
1 ?1 X3 W2 F: Y8 }7 y: u9 O4 D为了避免乱码,可以做到以下几步+ J. T. g9 _/ m1 U+ v4 W
解决方法# D/ q! U/ p' n- Y. i
1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码6 ~1 B& l" U; m4 h
检查一下<meta http-equiv=”content-type” content=”text/html; charset=utf-8″ />
. s; R5 }( G% P/ Y1 x! }建议中文都是用utf-8,使用gbk/gb2312有可能会出现乱码. {$ D9 N, Y5 d1 `/ p7 T" _' w
2,使用post来发送而不是get
+ F; s* c8 S# j$ p8 _5 \) n$ x9 g  qget方法是会通过链接来传递参数,而且会自动urlencode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。
1 d/ C6 v6 k1 F; O3,通过在js前端escape编码再发送,然后后台解码取得数据
1 s( u, e  H5 n2 ^2 {6 l这些可以在网上搜索! p) @1 c- |  \1 W  m$ o; p
4,在全局设定contenttype,指定编码
7 I4 Z, Z; N- Y) i7 H' h, g因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(ie默认使用iso-8859-1编码)
8 K) i& g7 B, O' o$.ajaxsetup({
8 p( W9 P: Q$ Z0 K) jcontenttype: application/x-www-form-urlencoded; charset=utf-8  p5 h; j; G. U. t( `' r

; O3 L$ r% D1 ?( o更多网页制作信息请查看: 网页制作

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