经过反复的思想斗争后,我还是决定发贴求救!
问题是这样的:
我用ajax做一个功能,这个功能是用户通过下拉列表选择一个地方(比如丽江),那么用户选择完之后在页面上无刷新的弹出一个层,显示丽江地区的景点列表(如果丽江古城、玉龙雪山等),那么我想通过获取用户选择的地方为参数通过xmlhttp传递给一个一般处理程序Handler.ashx进行处理从而得到结果再返回到客户端的层上。(听起来很简单),但现在问题出现了,传递过来的汉字参数变成了乱麻,我用HttpUtility.UrlDecode(HttpContext.Current.Request.QueryString["String"], System.Text.Encoding.Default);解码还是不起作用。
详细代码如下:
前台页面:
var xmlHttp;
//var pro=document.getElementById("newlocation").value;
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
function getvalue()
{
var pro=document.all["p"];
var ci=document.all["c"];
var item_pro=pro.options[pro.selectedIndex].value;
var item_ci=ci.options[ci.selectedIndex].value;
//alert(item_ci);
createXMLHttpRequest();
var url= "Handler.ashx?R_p="+item_pro+"&R_c="+item_ci+"";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=showResult;
xmlHttp.send(null);
}
function showResult()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
document.getElementById("Text1").value=xmlHttp.responseText;
}
}
}
Handler.ashx页面处理程序:
string getpro=context.Request.QueryString["R_p"];
string getcity=context.Request.QueryString["R_c"];
context.Response.Write(getpro);//这里打印出参数的结果时乱码
请教……