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 相关文章推荐
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 Javascript
Javascript之文件操作
Mar 07 Javascript
用JS实现的一个include函数
Jul 21 Javascript
node在两个div之间移动,用ztree实现
Mar 06 Javascript
页面使用密码保护代码
Apr 10 Javascript
JavaScript基础知识之方法汇总结
Jan 24 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
Sep 17 Javascript
解决vue axios的封装 请求状态的错误提示问题
Sep 25 Javascript
Vue 无限滚动加载指令实现方法
May 28 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
Apr 13 Javascript
详解vue高级特性
Jun 09 Javascript
用Javascript实现发送短信验证码间隔功能
Feb 08 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
ThinkPHP数据操作方法总结
2015/09/28 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
Angular2入门--架构总览
2017/03/29 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
在python中只选取列表中某一纵列的方法
2018/11/28 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
python实现对变位词的判断方法
2020/04/05 Python
iPython pylab模式启动方式
2020/04/24 Python
python logging通过json文件配置的步骤
2020/04/27 Python
Python实现动态循环输出文字功能
2020/05/07 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
浅析Python中字符串的intern机制
2020/10/03 Python
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
交通安全责任书范本
2014/07/24 职场文书
支部书记四风对照材料
2014/08/28 职场文书
财务整改报告范文
2014/11/05 职场文书
财务部会计岗位职责
2015/02/03 职场文书
匿名检举信范文
2015/03/02 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
python如何进行基准测试
2021/04/26 Python
goland 恢复已更改文件的操作
2021/04/28 Golang
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis