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实例教程(19) 使用HoTMetal(4)
Dec 23 Javascript
下拉菜单点击实现连接跳转功能的js代码
May 19 Javascript
js模仿hover的具体实现代码
Dec 30 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
canvas雪花效果核心代码分享
Feb 19 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
May 28 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
js 两数组去除重复数值的实例
Dec 06 Javascript
微信小程序实现天气预报功能
Jul 18 Javascript
js绘制一条直线并旋转45度
Aug 21 Javascript
原生js实现自定义滚动条
Jan 20 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代码
2008/09/10 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
php下获取http状态的实现代码
2014/05/09 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
PHP Cli 模式设置进程名称的方法
2019/06/12 PHP
prototype1.4中文手册
2006/09/22 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
python获取标准北京时间的方法
2015/03/24 Python
为Python程序添加图形化界面的教程
2015/04/29 Python
python解决pandas处理缺失值为空字符串的问题
2018/04/08 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
聚美优品励志广告词
2014/03/14 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
公司开除员工通知
2015/04/22 职场文书
工程项目合作意向书
2015/05/08 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
php png失真的原因及解决办法
2021/10/24 PHP