我用send发送数据xmlhttp.send("1234567");
不要用表单提交,即界面中没有from,也不用url直接带参数过去。请问还有什么办法,在C#代码中怎么读取这个数据呢?目的:
我希望我能传一个数据块过去,比如aaa|||bbb|||你好呀|||CCC,传这样一个格式的数据块过去,然后C#一次读取这些比较大的数据,然后在服务器端做拆分。页面中没有from,也不能用url带参数传过去。

解决方案 »

  1.   


    xmlhttp.send("var1=aaa|||bbb|||你好呀|||CCC"); 后台获取 string var1=Request["var1"];
      

  2.   


    function ajax_keyword() {
        var xmlhttp;
        try {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e) {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    var data = xmlhttp.responseText;
                    $("suggest").innerHTML = data;
                    j = -1;
                }
            }
        }    xmlhttp.open("post", "/jobs_nv/ajax_keywords.aspx", true);
        xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        xmlhttp.send("keyword=" + escape($("KeyWord").value));
    }
      

  3.   

    奇怪,仔细的比对代码,没有区别,可为什么我读不到呢?我机器里没装任何ajax的dll。和这个没关系吧?
      

  4.   

    我希望我能传一个数据块过去,比如aaa|||bbb|||你好呀|||CCC,传这样一个格式的数据块过去,然后C#一次读取这些比较大的数据,然后在服务器端做拆分。页面中没有from,也不能用url带参数传过去。 解答:
    1、既然是大量的数据块,那采用Post而拒绝Get2、传递就为:xmlhttp.send("data=aaa|||bbb|||你好呀|||CCC......"); 3、假如你的AJAX请求页面为:(同目录下)Abc.Aspx,那在Abc.Aspx下,就请如此获取值
    string Data = Request["data"].ToString();//注意,如果前台采用的为get方式,那就要注意使用以下获取
    Request.QueryString["data"].ToString();"data"与前台send里的名称xmlhttp.send("data=aaa|||bbb|||你好呀|||CCC......"); 要一样。
      

  5.   

    哦~~读到了!!谢谢。
    原来是他不一样
    xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');为什么头不一样就读不到了呢?这个application/x-www-form-urlencoded控制了什么?
      

  6.   

    对了,这些不需要。NET的dll,这个是浏览器自带的XMLHTTP,XMLRequestHttp等东东,浏览器自带的,与。NET无关系。