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 相关文章推荐
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
May 11 Javascript
javascript获取checkbox复选框获取选中的选项
Aug 12 Javascript
JavaScript数据结构与算法之栈详解
Mar 12 Javascript
详解JavaScript的while循环的使用
Jun 03 Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 Javascript
JS实现的竖向折叠菜单代码
Oct 21 Javascript
node.js实现爬虫教程
Aug 25 Javascript
省市区三级联动jquery实现代码
Apr 15 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 Javascript
解决Layui中layer报错的问题
Sep 03 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 Javascript
JavaScript 实现轮播图特效的示例
Nov 05 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简单浏览目录内容的实现代码
2013/06/07 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
Jquery css函数用法(判断标签是否拥有某属性)
2011/05/28 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
《Python学习手册》学习总结
2018/01/17 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
老生常谈python中的重载
2018/11/11 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
python scatter函数用法实例详解
2020/02/11 Python
使用python从三个角度解决josephus问题的方法
2020/03/27 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
西班牙在线光学:Visual-Click
2020/06/22 全球购物
护士自荐信范文
2013/12/15 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
2014年保管员工作总结
2014/11/18 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书