jquery ajax post提交数据乱码


Posted in Javascript onNovember 05, 2013

在用jquery处理html5的应用的时候,一直在firefox下测试都正常,用户用pad访问的时候说有乱码,
自己试验了下果然,后发现chrome和ie内核下都是有此问题,此问题设置了页面属性为utf-8时候,只有firefox是传的charset=utf-8的头文件
chrome和ie都没有指定,所以出现乱码问题.
解决方法:

$.ajaxSetup({
  contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
$.post("test.php", { name: "i5a6", time: "2pm" },
   function(data){
     process(data);
   }, "json");
 

或者使用:
$.ajax({
  url:url,
  type:"POST",
  data:data,
  contentType:"application/x-www-form-urlencoded; charset=utf-8",
  dataType:"json",
  success: function(){
    ...
  }
})
 

推荐使用第一种,不过也是根据自己的实际情况看的,有人推荐用 encodeURIComponent 做字符转换
总结一下ajax 提交数据乱码一些经验
为了避免乱码,可以做到以下几步
解决方法
1,保持编码的统一,包括文件编码,数据库编码,网页content-type编码
检查一下<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″ />
建议中文都是用UTF-8,使用gbk/gb2312有可能会出现乱码
2,使用post来发送而不是get
get方法是会通过链接来传递参数,而且会自动urlEncode(编码),而各个浏览器编码的方式可能不太一样。使用post可以避免这种情况。
3,通过在js前端escape编码再发送,然后后台解码取得数据
这些可以在网上搜索
4,在全局设定contentType,指定编码
因为jquery ajax是使用utf-8来编码发送数据的,ie在发送时却没加上charset=utf-8,从而导致乱码(IE默认使用iso-8859-1编码)
$.ajaxSetup({
 contentType: "application/x-www-form-urlencoded; charset=utf-8"
});
 
Javascript 相关文章推荐
JavaScript While 循环基础教程
Apr 05 Javascript
日期 时间js控件
May 07 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
angularJs中$http获取后台数据的实例讲解
Aug 08 Javascript
layui监听单元格编辑前后交互的例子
Sep 16 Javascript
谈谈IntersectionObserver懒加载的具体使用
Oct 15 Javascript
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
jquery ajax属性async(同步异步)示例
Nov 05 #Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 #Javascript
Javascript脚本实现静态网页加密实例代码
Nov 05 #Javascript
客户端js性能优化小技巧整理
Nov 05 #Javascript
js倒计时小程序
Nov 05 #Javascript
js实现幻灯片效果(基于jquery插件)
Nov 05 #Javascript
javascript使用location.search的示例
Nov 05 #Javascript
You might like
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
js获取指定的cookie的具体实现
2014/02/20 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
jQuery事件绑定和委托实例
2014/11/25 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
Python简明入门教程
2015/08/04 Python
python3音乐播放器简单实现代码
2020/04/20 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
python django事务transaction源码分析详解
2017/03/17 Python
Python表示矩阵的方法分析
2017/05/26 Python
python实现rsa加密实例详解
2017/07/19 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
艺术设计专业求职自荐信
2014/05/19 职场文书
招标授权委托书样本
2014/09/23 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
SpringAop日志找不到方法的处理
2021/06/21 Java/Android
Pandas-DataFrame知识点汇总
2022/03/16 Python