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 动态改变图片大小
Jun 11 Javascript
根据鼠标的位置动态的控制层的位置
Nov 24 Javascript
JS 添加千分位与去掉千分位的示例
Jul 11 Javascript
jQuery的图片滑块焦点图插件整理推荐
Dec 07 Javascript
在JavaScript中正确引用bind方法的应用
May 11 Javascript
基于javascript html5实现3D翻书特效
Mar 14 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
vue-cli3.X快速创建项目的方法步骤
Nov 14 Javascript
vue中使用极验验证码的方法(附demo)
Dec 04 Javascript
JS实现小星星特效
Dec 24 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实现读取超大文件的方法
2014/07/28 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
2016/12/05 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
python读取Android permission文件
2013/11/01 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
2018/07/02 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
Python按钮的响应事件详解
2019/03/04 Python
Python字符串对象实现原理详解
2019/07/01 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
水果花束:Fruit Bouquets
2017/12/20 全球购物
CHRONEXT英国:您的首选奢华腕表目的地
2020/03/30 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
软件工程专业推荐信
2013/10/28 职场文书
毕业生自荐书
2013/12/18 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
《锄禾》教学反思
2014/04/08 职场文书
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏
海弦WR-800F
2022/04/05 无线电