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下string.format函数补充
Aug 24 Javascript
javascript实现简单的html5视频播放器
May 06 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
JS调用Android、Ios原生控件
Jan 06 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
Jun 03 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
原生JavaScript实现Ajax异步请求
Nov 19 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
Mar 23 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
如何封装了一个vue移动端下拉加载下一页数据的组件
Jan 06 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 Javascript
如何阻止移动端浏览器点击图片浏览
Aug 29 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 HTML代码串 截取实现代码
2009/06/29 PHP
PHP开发的一些注意点总结
2010/10/12 PHP
php格式化日期实例分析
2014/11/12 PHP
php常用hash加密函数
2014/11/22 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
详细探究Python中的字典容器
2015/04/14 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
django数据库自动重连的方法实例
2019/07/21 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Python算法中的时间复杂度问题
2019/11/19 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
python 错误处理 assert详解
2020/04/20 Python
pandas DataFrame运算的实现
2020/06/14 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
团干部培训方案
2014/06/03 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
导游词之杭州西湖
2019/09/19 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python