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基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
URL地址中的#符号使用说明
Feb 12 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
Feb 23 Javascript
jQuery中get和post方法传值测试及注意事项
Aug 08 Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 Javascript
React Native中Navigator的使用方法示例
Oct 13 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
Angular动态绑定样式及改变UI框架样式的方法小结
Sep 03 Javascript
vue生命周期和react生命周期对比【推荐】
Sep 19 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 Javascript
jquery+css3实现的经典弹出层效果示例
May 16 jQuery
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 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 mssql 时间格式问题
2009/01/13 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
javascript 写类方式之十
2009/07/05 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
利用Python和OpenCV库将URL转换为OpenCV格式的方法
2015/03/27 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python的标准模块包json详解
2017/03/13 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
护理专业学生的求职信范文
2013/12/11 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
干部竞争上岗演讲稿
2014/09/11 职场文书
2014年学校工作总结
2014/11/20 职场文书
个人租房协议书
2014/11/28 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
企业安全生产检查制度
2015/08/06 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL