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 相关文章推荐
jquery中eq和get的区别与使用方法
Apr 14 Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 Javascript
jQuery客户端分页实例代码
Nov 18 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
Dec 23 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
Sep 01 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
Sep 03 Javascript
js如何实现元素曝光上报
Aug 07 Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 Javascript
vue 插槽简介及使用示例
Nov 19 Vue.js
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处理整数函数的详解
2013/06/09 PHP
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
2017/09/20 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
深入浅析python定时杀进程
2016/06/06 Python
Python标准库sched模块使用指南
2017/07/06 Python
python图像常规操作
2017/11/11 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
详解python中的hashlib模块的使用
2019/04/22 Python
用python求一重积分和二重积分的例子
2019/12/06 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
python跨文件使用全局变量的实现
2020/11/17 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
民族精神月活动总结
2014/08/28 职场文书
法律讲堂观后感
2015/06/11 职场文书
Vue如何清空对象
2022/03/03 Vue.js
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA
Python 文字识别
2022/05/11 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang