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 实现的自定义对话框
Mar 24 Javascript
在Z-Blog中运行代码[html][/html](纯JS版)
Mar 25 Javascript
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
SyntaxHighlighter 3.0.83使用笔记
Jan 26 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
Aug 04 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
Mar 09 Javascript
javascript验证手机号和实现星号(*)代替实例
Aug 16 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
vue实现动态按钮功能
May 13 Javascript
Angular利用HTTP POST下载流文件的步骤记录
Jul 26 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
python实现的阳历转阴历(农历)算法
2014/04/25 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
Python Socket使用实例
2017/12/18 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
Spy++的使用方法及下载教程
2021/01/29 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
经济信息系毕业生自荐信范文
2014/03/15 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2019个人工作总结
2019/06/21 职场文书
2019经典广告词集锦!
2019/07/02 职场文书