我在客户端执行 startrequest(x,y,1);
这方法定义如下:
 function startrequest(x,y,state)
   {
        createxmlhttprequest();
        xmlhttp.onreadystatechange = changed;
        xmlhttp.open("get","http://localhost/WebSite3/Default.aspx?x="+x+"&y="+y+"state="+state,true);
        xmlhttp.send(null);
   }
request对象的创建:
   var xmlhttp;
   
   function createxmlhttprequest()
   {
        if(window.ActiveXObject)
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest)
        {
            xmlhttp = new XMLHttpRequest();
        }
   }然后执行的服务器端方法:
     if (IsPostBack)
        {            if (Request.QueryString["x"] != null)
            {
                string s = Request.QueryString["x"] + Request.QueryString["y"] + Request.QueryString["state"];
              
                if (Session["s"] == null)
                    Session.Add("s", s);
                else
                    Session["s"] = s;
            }
        }
但实际上,异步调用并没有执行   Session.Add("s", s);或者也不能执行例如开连接,访问数据库的代码,请问这个问题怎么解决?

解决方案 »

  1.   

    xmlhttp.open("get","http://localhost/WebSite3/Default.aspx?x="+x+"&y="+y+"state="+state,true);
    get方式
    服务器
      if (IsPostBack)
    Post方式去处理,这样当然不行.
      

  2.   

    有什么办法能让ajax在客户端以不回调的时候,能够在服务器上拿到客户端回传的值,并且把值写入到数据库呢?
      

  3.   

    if (IsPostBack)
     ---->把这个去了,第一次请求的时候明明就不是PostBack的了,所以根本就不执行下面的
      

  4.   

    我现在就是使用 xmlhttprequest 的 open 方法里的url 参数里夹带了 我服务器需要的参数。然后在服务器端拿到参数后写入到数据库里面去。
      

  5.   

    兄弟,还是用atlas吧,有个UpdatePanel控件,用起来很是舒服的
      

  6.   

    我现在就是使用 xmlhttprequest 的 open 方法里的url 参数里夹带了 我服务器需要的参数。然后在服务器端拿到参数后写入到数据库里面去。
    ----------------XMLHttp我刚刚也使用了
      var xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
      var strOutput;
      var i;
      xmlHttp.open("POST","../Func.aspx?fk=Read", false);
        xmlHttp.send(strInput);---strInout自己写,我是传了个字符串数组过去---服务器端
            byte[] str = Request.BinaryRead(Request.ContentLength);
            string sCustomer_no;        
            string[] strIC = (string[])Conv.ConvertFrom(System.Text.ASCIIEncoding.ASCII.GetString(str));   //字符串数组接收         然后插入数据库即可
      

  7.   

    xiedan79(Sam Xie):atlas---这东西真这么好用,我看看,呵呵,偶现在也感觉Ajax比较麻烦