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 相关文章推荐
动态为事件添加js代码示例
Feb 15 Javascript
JQuery toggle使用分析
Nov 16 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
Mar 07 Javascript
详解微信小程序开发之下拉刷新 上拉加载
Nov 24 Javascript
用 js 的 selection range 操作选择区域内容和图片
Apr 18 Javascript
JS实现动态添加DOM节点和事件的方法示例
Apr 28 Javascript
React学习笔记之事件处理(二)
Jul 02 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
mocha的时序规则讲解
Feb 16 Javascript
JS实现返回上一页并刷新页面的方法分析
Jul 16 Javascript
vue 获取url参数、get参数返回数组的操作
Nov 12 Javascript
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中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
PDO::quote讲解
2019/01/29 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
Bootstrap基础学习
2015/06/16 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
七年级英语教学反思
2014/01/15 职场文书
学校通报表扬范文
2015/05/04 职场文书
跳高加油稿
2015/07/21 职场文书