jquery向.ashx文件post中文乱码问题的解决方法


Posted in Javascript onMarch 28, 2011

1.我的环境:vs2005,未装SP1补丁,不能创建Web应用程序,只能创建网站;jquery版本1.5.1

2.web.config中的相关配置

<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>

3.jquery的Post数据的写法

$(document).ready(function (){ 
$("#btnSend").click(function(){ 
$.ajax({ 
type: "POST", 
url: "PrecisionAHandle.ashx", 
contentType:"application/x-www-form-urlencoded; charset=UTF-8", 
data: { "StudentId": $("#LblStudentId").attr("innerText"),"StudentName": $("#LblStudentName").attr("innerText"),"StudentAge": $("#txtStudentAge").attr("value")}, 
success: function(html){ 
$("#TabContainer").html(html); 
} 
}); 
}); 
});

其中StudentName是中文

4.在.ashx文件中接收参数的写法

string strStudentName = context.Request.Params["StudentName"];
注意:如果没有contentType:"application/x-www-form-urlencoded; charset=UTF-8",则context.Request.Params["StudentName"]是乱码。
经过在.ashx中跟踪context.Request.ContentEncoding,可知jquery所post过来的数据采用的是gb2312编码,可能context.Request在接收到数据时默认采用utf-8进行解码,但是jquery在Post数据的时候却不是用的utf-8才导致.ashx的context.Request.Params["StudentName"]显示为乱码。
感觉比较奇怪的现象:
现象1:在不添加contentType:"application/x-www-form-urlencoded; charset=UTF-8",的情况下,在.ashx文件中使用下面的语句却可以正确显示字符串:

StreamReader steamRd = new StreamReader(HttpContext.Current.Request.InputStream); 
string strPostData = steamRd .ReadToEnd(); 
strPostData =HttpUtility.UrlDecode(strPostData, Encoding.GetEncoding("utf-8"));

现象2:将web.config中的相关配置改为
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
之后,不管是否加上contentType:"application/x-www-form-urlencoded; charset=UTF-8",后台的.ashx文件接收到的参数仍然是乱码。修改web.config之后网站编译的很慢且运行的也很慢。

参考文章:
https://3water.com/article/26658.htm
https://3water.com/article/26659.htm

Javascript 相关文章推荐
javascript 控制弹出窗口
Apr 10 Javascript
json跟xml的对比分析
Jun 10 Javascript
JavaScript的各种常见函数定义方法
Sep 16 Javascript
jquery实现不包含当前项的选择器实例
Jun 25 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
jQuery Mobile开发中日期插件Mobiscroll使用说明
Mar 02 Javascript
JS 对java返回的json格式的数据处理方法
Dec 05 Javascript
详解Node.js模板引擎Jade入门
Jan 19 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
vue服务端渲染添加缓存的方法
Sep 18 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
Seajs源码详解分析
Apr 02 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 #Javascript
jQuery中调用WebService方法小结
Mar 28 #Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 #Javascript
jquery.combobox中文api和例子,修复了上面的小bug
Mar 28 #Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
Sep 12 #Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
Mar 28 #Javascript
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 #Javascript
You might like
使用PHP维护文件系统
2006/10/09 PHP
php json_encode奇怪问题说明
2011/09/27 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
jquery live()调用不存在的解决方法
2014/02/26 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
带你快速理解javascript中的事件模型
2017/08/14 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python程序设计入门(2)变量类型简介
2014/06/16 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
护理毕业生自荐信范文
2013/12/22 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
追讨欠款律师函
2015/05/27 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书
创业计划书之服装
2019/10/07 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS