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 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
javascript事件模型实例分析
Jan 30 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
Aug 18 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
Apr 29 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 Javascript
关于AOP在JS中的实现与应用详解
May 06 Javascript
深入浅出了解Node.js Streams
May 27 Javascript
在Vue中使用Echarts实例图的方法实例
Oct 10 Javascript
如何手写简易的 Vue Router
Oct 10 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中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
初步理解Python进程的信号通讯
2015/04/09 Python
Django返回json数据用法示例
2016/09/18 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python实现网站表单提交和模板
2019/01/15 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
python从PDF中提取数据的示例
2020/10/30 Python
python字典与json转换的方法总结
2020/12/28 Python
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
金智子午JAVA面试题
2015/09/04 面试题
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
学院领导推荐信
2013/10/30 职场文书
生产主管岗位职责
2013/11/10 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
走近毛泽东观后感
2015/06/04 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
Python进度条的使用
2021/05/17 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python