jquery ajax post提交数据乱码

在用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"

});

时间: 2024-12-31 03:29:27

jquery ajax post提交数据乱码的相关文章

jQuery选取所有复选框被选中的值并用Ajax异步提交数据

昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来批量提交复选框数据,今天用到了就分享一下. 由于我做的项目一些地方比较复杂,这里我只举一个小例子,能理解就好. 首先,我做了一个简单的多个复选框的界面,如图: 这是一个比较简单的多个复选框提交界面.代码如下: 1 <body> 2 <div> 3 <input type=&quo

jquery $.ajax 获取josn数据

<script type="text/javascript" src="jquery-1.9.1.js"></script> <script type="text/javascript"> function test() { $.ajax({ type: "get", cache: false, url: "../../ajax/Task.aspx", data: 'id

Form表单Ajax系列化提交数据

页面上有一个商品的颜色尺码二维输入框,输入完毕之后需要把数据进行提交,点击立即购买则进行页面的跳转,通过form表单将数据提交到后台,而点击添加到购物车的话,则会通过ajax进行数据的提交,页面不进行跳转.前台样式: 下面是form表单: <form id="cartForm" action="${ctx}/cart/save" method="post"> <div class="product-page-optio

AJAX请求提交数据

1,AJAX准备知识:JSON JSON指的是JavaScript对象表示方法(JavaScript Object Notation) JSON是轻量级的文本数据交换格式 JSON独立于语言 JSON具有自我描述性, 更易理解 JSON使用JavaScript语法来描述数据对象,但是JSon仍然独立于语言和平台,json解析器和json库支持许多不同的语言 合格的json对象: ["雪雪","小雪","雪儿","小雪砸",&q

jquery $.ajax()实现Post数据到服务端

在jquery 中使用ajax方式进行异步调用有3种方式:$.post.$.get.$.ajax. 其中$.post.$.get是封装的$.ajax方法.处理一些较为简单的ajax请求,参数少的情况. 如果遇到复杂数据传输,或者对传输配置参数需要定义,就需要$.ajax了. 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType }); 二.$.ajax的

使用jQuery AJAX读取二进制数据

READING BINARY DATA USING JQUERY AJAX http://www.henryalgus.com/reading-binary-files-using-jquery-ajax/ Query is an excellent tool to make web development easy and straightforward. It helps while doing DOM manipulation and makes Ajax requests painles

jQuery Ajax请求提交 后台getParameter接收不到数据

今天遇到的问题,总结一下 jQuery的$ajax({ contentType:"application/json",  //发送信息至服务器时内容编码类型. }) 这样的方式提交时,如果指定contentType为application/json:此时后台通过传统的getParameter("属性名")不能够获取前端传过来的数据, 此时需要 使用 http://blog.csdn.net/mhmyqn/article/details/25561535 这里的方法去

jQuery.form.js jQuery ajax异步提交form

jQuery.form.js是一个form插件,支持ajax表单提交和ajax文件上传. 官网下载地址:http://plugins.jquery.com/form/ API ajaxForm 增加所有需要的事件监听器,为ajax提交表单做准备.ajaxForm并不能提交表单.在document的ready函数中,使用ajaxForm来为ajax提交表单进行准备. 接受0个或1个参数.参数可以是一个回调函数,也可以是一个Options对象. $("#formid").ajaxForm(

jquery使用FormData提交数据

在jquery中,使用ajax提交表单数据. FormData可以很方便地获取到表单中的所有数据. 注意: ajax中的data参数为FormData类型时,contentType就不要设置成application/json了. 示例如下: <script type="text/javascript" > $(document).ready( function () { $("#commit").click(function () { var form