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开发技术大全-第3章 js数据类型
Jul 03 Javascript
js实现快速分享功能(你的文章分享工具)
Jun 25 Javascript
javascript利用apply和arguments复用方法
Nov 25 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
Feb 26 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
AngularJS  自定义指令详解及实例代码
Sep 14 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
JS求解两数之和算法详解
Apr 28 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
神族 Protoss 历史背景
2020/03/14 星际争霸
PHP版自动生成文章摘要
2008/07/23 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
详解php的socket通信
2015/08/11 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
python实现读取命令行参数的方法
2015/05/22 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python调用API实现智能回复机器人
2018/04/10 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
一道写SQL的面试题和答案
2013/11/19 面试题
公司经理聘任书
2014/03/29 职场文书
信访工作经验交流材料
2014/05/23 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
高三生物教学反思
2016/02/22 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
golang正则之命名分组方式
2021/04/25 Golang
MySQL查询学习之基础查询操作
2021/05/08 MySQL
基于Redis延迟队列的实现代码
2021/05/13 Redis
对Keras自带Loss Function的深入研究
2021/05/25 Python
Python中requests做接口测试的方法
2021/05/30 Python
mysql联合索引的使用规则
2021/06/23 MySQL
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL
css样式important规则的正确使用方式
2022/06/10 HTML / CSS