前台的一个方法:
function C()
{
     var url;
     url="ajax.aspx?name=" + document.getElementById("ddl1").value;
     xmlHttp.open("GET",url,true);
     xmlHttp.onreadystatechange=D;
     xmlHttp.send(null);
     return false;
}
document.getElementById("ddl1").value这个值传的是中文。但是ajax.aspx接受到的是乱码;我就在后台写了个方法:
public String BianMa(string str)
{
    return Server.UrlEncode(str);
}
调用:url="ajax.aspx?name=" + <%=BianMa(document.getElementById("ddl1").value) %>;
然后报错:当前上下文中不存在名称“document”该怎么解决啊?

解决方案 »

  1.   

    设置下传输编码试下xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
      

  2.   

    js不能这样调用服务器端的方法也不需要服务器端的,你使用encodeURI编码你的内容就可以了
     url="ajax.aspx?name=" + encodeURI(document.getElementById("ddl1").value); 
    //防止缓存的问题,最好价格时间戳
    url+="&ts="+new Date().toString();
      

  3.   

    <%=BianMa(document.getElementById("ddl1").value) %>
    这种写法显然不对!document.getElementById("ddl1").value是一个客户端脚本变量,不能放在服务器变量<%=%>之间!
    可以参考
    http://www.cnblogs.com/downmoon/archive/2007/12/30/1021140.html
    http://blog.csdn.net/downmoon/archive/2007/11/14/1885199.aspx