jquery.ajax的url中传递中文乱码问题的解决方法


Posted in Javascript onFebruary 07, 2014

JQuery

JQuery默认的contentType:application/x-www-form-urlencoded

这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1

ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。

JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。

而我们的UTF-8则可以解决这一问题。

最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。

1. 修改JQuery代码

只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。

修改用到的jquery文件:jquery-1.4.4.min.js

ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charset=UTF-8",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest}

2. Js代码:

function confirmcommit(){
    var wlCompany = $("#wlCompany").val();//这里含有中文
    var wlId = $("#wlId").val();
    var proposer = $("#proposer").val();
    if(confirm("确认要换货吗")){
$.ajax({
type:'POST',
url:'${pageContext.request.contextPath}/returnGoods/confrimExchangeGoods.do',
data:'wlCompany='+wlCompany+'&wlId='+wlId+'&proposer='+proposer, //直接传值
dataType:'text',
error:function(){
    alert("JQuery AJAX Error!");      
},
success:function(msg){
    alert(msg);
    return;
    if(msg=='换货成功'){
 document.location="${pageContext.request.contextPath}/orderItem/queryProduceItem.do?orderBusType="+${orderBusType};
    }
}
});
     }
 }

3 .Java代码:
public ActionForward confrimExchangeGoods(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
log.info("确认换货 confrimExchangeGoods start...............");
response.setCharacterEncoding("UTF-8"); //这里要设置一下
String wlCompany = request.getParameter("wlCompany");
String wlId = request.getParameter("wlId");
String proposer = request.getParameter("proposer");
     .....
}
Javascript 相关文章推荐
extjs 学习笔记 四 带分页的grid
Oct 20 Javascript
用JavaScript修改CSS属性的代码
May 06 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
Dec 04 Javascript
jQuery简单tab切换效果实现方法
Apr 08 Javascript
javascript原始值和对象引用实例分析
Apr 25 Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 Javascript
JS闭包用法实例分析
Mar 27 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
Jan 08 Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 Javascript
vue-cli 引入、配置axios的方法
May 08 Javascript
elementUi vue el-radio 监听选中变化的实例代码
Jun 28 Javascript
解决Vue项目中tff报错的问题
Oct 21 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 #Javascript
Ajax提交与传统表单提交的区别说明
Feb 07 #Javascript
JQUERY 设置SELECT选中项代码
Feb 07 #Javascript
jquery操作select详解(取值,设置选中)
Feb 07 #Javascript
jquery select 设置默认选中的示例代码
Feb 07 #Javascript
jquery 淡入淡出效果的简单实现
Feb 07 #Javascript
通过遮罩层实现浮层DIV登录的js代码
Feb 07 #Javascript
You might like
php图片缩放实现方法
2014/02/20 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
python获取当前目录路径和上级路径的实例
2018/04/26 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
通过实例解析python and和or使用方法
2020/11/14 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
木工主管岗位职责
2013/12/08 职场文书
校园门卫岗位职责
2013/12/09 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
高中英语教学反思范文
2016/03/02 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android