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 相关文章推荐
IE7提供XMLHttpRequest对象为兼容
Mar 08 Javascript
onbeforeunload与onunload事件异同点总结
Jun 24 Javascript
javascript学习笔记(四)function函数部分
Sep 30 Javascript
深入浅析jQuery对象$.html
Aug 22 Javascript
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
深入理解Vue Computed计算属性原理
May 29 Javascript
JavaScript闭包原理与用法实例分析
Aug 10 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
基于Vue实现电商SKU组合算法问题
May 29 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
JS实现纵向轮播图(初级版)
Jan 18 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
PHP静态文件生成类实例
2014/11/29 PHP
jquery 上下滚动广告
2009/06/17 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
使用Javascript接收get传递的值的代码
2011/11/30 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
javascript中this的四种用法
2015/05/11 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
Promise扫盲贴
2019/06/24 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
Python实现全角半角字符互转的方法
2016/11/28 Python
python如何实现int函数的方法示例
2018/02/19 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python实现淘宝秒杀脚本
2020/06/23 Python
Python中关于浮点数的冷知识
2019/09/22 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
人事专员工作职责
2014/02/22 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
MySQL空间数据存储及函数
2021/09/25 MySQL