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 特殊字符串
Feb 25 Javascript
js中eval详解
Mar 30 Javascript
javascript随机之洗牌算法深入分析
Jun 07 Javascript
Node.js插件的正确编写方式
Aug 03 Javascript
Node.js中创建和管理外部进程详解
Aug 16 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
JavaScript中undefined和null的区别
May 03 Javascript
浅谈webpack编译vue项目生成的代码探索
Dec 11 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 Javascript
js实现自定义滚动条的示例
Oct 27 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改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
再谈PHP中单双引号的区别详解
2016/06/12 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
Vue 中 filter 与 computed 的区别与用法解析
2019/11/21 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
python比较两个列表大小的方法
2015/07/11 Python
10个Python小技巧你值得拥有
2018/09/29 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
Boutique 1美国:阿联酋奢侈时尚零售商
2017/10/16 全球购物
法学专业个人求职信
2013/09/26 职场文书
网络技术专业求职信
2014/02/18 职场文书
保护环境建议书400字
2014/05/13 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
2016党员党课心得体会
2016/01/07 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
MySQL派生表联表查询实战过程
2022/03/20 MySQL