<script type="text/javascript">
    var XmlHttp;
    //创建Ajax对象
    function CreateXmlHttp()
    {
    if(window.XMLHttpRequest)
    {
     XmlHttp= new XMLHttpRequest();
    }else if(window.ActiveXObject)
    {
     XmlHttp=new ActiveXObject("microsoft.xmlhttp");
    }
    }    function Command()
    {
    debugger;
    CreateXmlHttp();
    XmlHttp.open("get","../test/Default.aspx",true);
    XmlHttp.onreadystatechange= new function()
    {
    if(XmlHttp.readyState==4)
    {
      alert("Ajax返回的结果是"+XmlHttp.responseText);
    }else
    {
    }
    }    XmlHttp.send(null)
    }    public void AjaxMethod()
    {
        Response.Write("我在调用Ajax方法");
    }页面在test中的Default.aspx
我本想调用AjaxMethod()这个方法在open中url原写的是"../test/Default.aspx/AjaxMethod"我也不晓得这样写行不行,但有人说这样写可以。
现在测试时我写"../test/Default.aspx"的URL路径xmlHttp.readystate==4都不成立
请高手帮分析下
AjaxMethod()方法是在Default.aspx.cs文件中

解决方案 »

  1.   

    xmlhttp.Open("GET","a.aspx?a="+a+"&date="+new Date(),false);
    protected void Page_Load(object sender, EventArgs e)
        {
            Response.Clear(); ....   //Request.QueryString                          
            Response.Write(responseText);
            Response.End();   
    }
      

  2.   

    现在很少有人从头写起了。你这个代码FireFox就运行不了,因为XMLHttp是Microsoft特有的。为什么不用jQuery呢。
      

  3.   

       x = window.XMLHttpRequest ? new window.XMLHttpRequest : new ActiveXObject("Msxml2.XMLHTTP")
          x.open("GET", "<%= Request.Url.LocalPath %>?type=a&" + Date.parse(new Date()), false);
          x.send(null);
          if (x.status == 200) {
            return x.responseText;
          }
          else {
            return "";
          }
    protected void Page_Load(object sender, EventArgs e)
        {
          if (Request.QueryString["type"]!=null)
          {
            Response.ClearContent();
            Response.Write(Method());
            Response.End();
          }
        }
        protected string Method()
        {     
          return "";
        }
      

  4.   

    方法很多了:
    1:asp.net中可以找个叫ajaxpro.dll添加到引用中,然后按照他说明的方式,可以在js中调用服务器端的方法并返回值;
    2:jquery 的$.ajax , $.get , $.getJSON  ...服务器端可以用ashx,webservice返回你要获取的服务器端的值,比如数据库某个表中某一列;
    推荐jquery这个脚本库很强大的说。不过在用的时候要注意,调试起来比较麻烦。ajaxpro比较简单,但是很不灵活。
      

  5.   

    像这种情况,如果Ajax调用的方法多了,哪load事件不是有很多个判断和方法啦,我试用在方法里写Response.Clear()及Response.end()但效果没用
      

  6.   

    关于服务器端代码响应ajax请求,我现在使用的办法是在url后面添加的参数中加上需要调用的方法名,让服务器端代码通过反射动态调用这个方法,如:
    var url = 'test.ashx?fn=GetUserList';
    GetUserList就是服务器端代码中的一个方法,test.ashx页面通过反射动态调用这个方法,
    这样的话所有ajax请求可以只发向一个唯一的地址,
    这么做最大的好处就是当js代码中创建了很多需要与服务器交互的对象,
    并且这些对象会被许多页面调用时,不用考虑请求地址的路径问题。
      

  7.   

    我也喜欢底层点!哈哈 要是用jquery都不知道底层是怎么写的!学习ajax!
      

  8.   

    用ajaxpro吧,可以调用cs中的方法