jquery的$.ajax() $.post() $.getJSON() 等ajax方法时,中文参数乱码问题

标签: jquery ajax post | 发表时间:2013-04-05 13:22 | 作者:zenson_g
出处:http://blog.csdn.net

在使用jquery的$.ajax()  $.post() $.getJSON() 等ajax方法时,难免会有用到中文参数的问题,在后台接收的中文参数是乱码,解决方法如下:


$.ajax({

    dataType : ‘json’     ,type : ‘POST’     ,url : ‘http://localhost/test/test.do’     ,data : {id: 1, type: ‘商品’}     ,success : function(data){             } } );
问题:
  提交后后台action程序时,取到的type是乱码
  解决方法:
  方法一:提交前采用encodeURI两次编码,记住一定是两次
  1.修改以下代码
  data:{id:1, type:encodeURI(encodeURI(‘商品’))}

  2.在后台action里要对取得的字符串进行decode


  1、String type = request.getParameter(“type”);

  2、type = URLDecoder.decode(type, “UTF-8″);

  方法二:ajax配置contentType属性,加上charset=UTF-8
  在ajax方法中加入以下参数
  contentType: “application/x-www-form-urlencoded; charset=UTF-8″使用其它js框架或者xhr都是差不多,设置header中contentType即可,
  这里关键是charset=UTF-8,如果没有这个,是不行的,默认jQuery里的contentType是没有的


绝对可以的方法:
http://blog.csdn.net/zenson_g/article/details/8604892  可以看这个,是提供一个手写java类用16进制解决的,跟方法一有点点类似

 

这里讲的是ajax(),其它post()  getJSON() 方法是一样的   ,ajax有contenType属性,其它好像没有,这个有时候没用,具体原因不知道。。。。

 

有更方便的解决方法,希望留言告诉一下!谢谢!

作者:zenson_g 发表于2013-4-5 13:22:30 原文链接
阅读:0 评论:0 查看评论

相关 [jquery ajax post] 推荐:

jquery的$.ajax() $.post() $.getJSON() 等ajax方法时,中文参数乱码问题

- - CSDN博客推荐文章
在使用jquery的$.ajax()  $.post() $.getJSON() 等ajax方法时,难免会有用到中文参数的问题,在后台接收的中文参数是乱码,解决方法如下:.     dataType : ‘json’     ,type : ‘POST’     ,url : ‘http://localhost/test/test.do’     ,data : {id: 1, type: ‘商品’}     ,success : function(data){             } } );.

菜鸟简述Jquery中Ajax发送post请求及XML响应

- - 博客园_首页
在没有出现jquery前,是通过纯手工的方式获取XmlHttpRequest对象来向服务器发送异步请求实现局部刷新. 在jquery出现以后我们利用其封装好的对象来实现ajax请求,下面以post请求为例作一个简单介绍:. jQuery.post(url, [data], [callback], [type]),其中url为请求地址,data为待发送的参数及其值,callback为发送成功时的回调函数,type为返回内容的类型(xml、html、text、json等).

AJAX POST&跨域 解决方案 - CORS

- - JavaScript - Web前端 - ITeye博客
跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一.   和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,GET形式搞不定.

jquery ajax 跨域请求

- - 博客园_首页
使用 jquery 中的ajax  进行跨域请求. 说明:dataType 为  "jsonp"  ;type 只能为 GET.                    //处理错误. 后台处理代码 ValidAccountsExists.aspx.

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

- - 行业应用 - ITeye博客
HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中. 通过chrome的开发者工具可以看到如下(这里是可读的形式,不是真正的HTTP请求协议的请求格式):.

10款实用的Ajax相关的jQuery插件推荐

- jingjing - ITeye资讯频道
本文搜集了10款最近受欢迎的、实用的AJAX jQuery插件,包括终端命令行、分页、图表、购物车插件等,你可以在你的网站或应用中使用这些插件,以达到意想不到的效果. 该插件可以在网站上实现终端交互效果. 这可不是FTP或SSH终端,你可以定义交互的命令. 该插件可以使用多种方式来解决页面分页问题,它采用一个简单而直截的Callback设计.

jQuery中利用JSONP解决AJAX跨域问题

- - 蓝飞技术博客
跨域的解决方案有多种,其中最常见的是使用同一服务器下的代理来获取远端数据,再通过ajax进行读取,而在这期间经过了两次请求过程,使得获取数据的效率大大降低,这篇文章蓝飞就为大家介绍一下解决跨域问题的一种比较通用的方案——JSONP. 简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即“同源策略”.

利用jQuery和HTML5实现无刷新Ajax风格的表单

- - CSDN博客推荐文章
        利用jQuery我们能够做出一些相当震撼的网页效果. jQuery的出现使DOM的操作更加的简单易用. 下面的教程展示了如何利用jQuery创建一个HTML5效果的邀请表格,同时实现表格内容的检查功能.         首页的格式必须是HTML5的格式.         接下来添加jQuery库,将如下代码添加到标签之前:.

jQuery ajax - serialize()方法以及常见问题

- - CSDN博客推荐文章
使用ajax时,常常需要拼装input数据为'name=abc&sex=1'这种形式,用 JQuery的serialize方法可以轻松的完成这个工作. jQuery ajax - serialize() 方法定义和用法. serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身.

使用jQuery ajax中按钮button和submit的区别

- - 博客园_首页
昨天在使用jQuery ajax的post方法进行页面传值,无刷新获取数据展示,弄了半天就是没有效果,看了半天也没有语法错误,最后才终于明白问题出在哪里.. jQuery ajax的post方法这样写应该是没有问题的,点击submit提交按钮,sendPwd.php通过$_POST接收传过来的值,然后echo一段数据.