真正的JQuery.ajax传递中文参数的解决方法 |
本文标签:ajax,中文参数 本人最近也遇到了需要传递中文参数的问题 。在网上搜索一下,复制粘贴发的到处都是的“终极”“解决方案”无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去 。 我很久以前一直在使用Prototype框架 。在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题 。于是将Prototype和JQuery代码都下载下来打开研究原因 。具体结果如下
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title></title> <script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script> <script type="text/javascript"> function DoAjax(){ $.post("AjaxTest.aspx",{txt:$("#tbox1").val()}, function(data){ $("#AjaxResponse").text(data); } ); } </script> </head> <body> <p><a href="javascript:DoAjax();">AjaxTest</a><input name="tbox1" id="tbox1" type="text" /></p> <div id="AjaxResponse"></div> </body> </html> AjaxTest.aspx: 复制代码 代码如下: <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %> <script runat="server"> string parms; void Page_Load(object sender , EventArgs e) { parms=Request["txt"]; if (String.IsNullOrEmpty(parms)){ Response.Write("Is Null"); }else{ Response.Write(parms); } } </script> |