非常奇怪的问题。当前页面
productdetail.aspx页面
 <input name="Input" type="button" value="收藏产品" onclick="GetFavorites();" /> function GetFavorites()
{
   debugger;  
  
    var scaurl= location.href;  
    var scaid=requestHtml(1);
     if(scaid=="")
  {
    
      alert('参数信息不完整,无法收录信息');          
      return;
  }
  else
  {
     var urlaspx ="/js/FavoritesAjax.aspx?id="+scaid+"&url="+scaurl+"&Time="+Math.random();
    var objHttp=CreateXmlhttp();
  
   
    objHttp.open("GET", urlaspx, true);    
     objHttp.setRequestHeader("Cache-Control","no-cache"); 
     objHttp.send(null);
     objHttp.onreadystatechange =function(){ 
   
     var url =location.href;  
     var loginurl="/User/UserLogin.aspx?ReturnUrl="+escape(url);    if (objHttp.readyState == 4 && objHttp.status==200)
    {
       var result=objHttp.responseText;   //调试脚本的时候,发现这个输出竟然是整个页面的html代码
      
        if(result=="AddOk")
        {
        
          alert('该商机信息已成功加入您的收藏列表中');                  
        
        }   
       else if(result=="UnLogin") 
       {
        if(confirm('本次操作要求您未登录前,不能收藏该\n产品,是否继续登录?'))
        {
         window.location.href=loginurl;
        }
      else
      {
        return false;
      }
        
        
       }  
       else if(result=="PrepFailed")
       {
            if(confirm('很抱歉,由于预读取收藏信息错误。您对本\n页面信息的收藏失败。尝试将本信息\n加入您的系统收藏夹吗?'))
          {
             window.external.AddFavorite(url,'商机信息-----中国锯工业网');
           }
          
      }
      else if(result=="AddError")
      {
        if(confirm('很抱歉,由于记录该商机信息发生一项错误。您对\n本页面信息的收藏失败。尝试将本信息\n加入您的系统收藏夹吗?'))
         {
           window.external.AddFavorite(url,'商机信息-----中国锯工业网');
         }
      
      }
      else if(result=="ExistFavorties")
      {
        alert('您已收录过该信息');
      }
      else if(result=="LimitedCount")
      {
        if(confirm('很抱歉,您的收藏个数已达系统\n要求最大限度.尝试将本信息\n加入您的系统收藏夹吗?'))
        {
        window.external.AddFavorite(url,'商机信息-----中国锯工业网');
        }
        
      }    } 
    
     }  }}//FavoritesAjax.aspx.cs部分代码
if (!Page.IsPostBack)
        {
            if (Request.QueryString["id"] != null && Request.QueryString["url"] != null )
            {
                int intID = CheckTypeCode.GetInt(Request.QueryString["id"].ToString());
               
              
                string strUrl = HttpContext.Current.Request.UrlReferrer.PathAndQuery;                    if (intID!=0)
                {
                    Response.Write(AddFavorites(intID, strUrl));
                
                }                }        }        Response.End();========================
问题现象是,我在FavoritesAjax.aspx.cs中设立了各个断点,但Vs2005调试的时候,进不去,也就是好像没执行一样。
另外调试脚本的时候,发现objHttp.responseText竟然是productdetail.aspx的整个页面源html代码

解决方案 »

  1.   

    本来如此,你请求一个页,自然返回整个页面源码简单的解决方案, 是用现成的框架,例如ajaxpro..... ajaxexten....
      

  2.   


    ajaxpro.2框架我也有用过,但个人感觉这个框架不怎么好。特别是在一些东西上我发现调试很困难。老是调试到底层里面去。根本就很难看答案。
    微软的ajax.net也是有用过。但不适合我这个场合。您对xmlhttprequest的ajax了解吗?能针对这个问题帮分析好吗?谢谢
      

  3.   

    if (intID!=0)
                    {
                        Response.Write(AddFavorites(intID, strUrl));
                        Response.End();
                        return;
                    }    
      

  4.   

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Clear();
            if (!Page.IsPostBack)
            {
                if (Request.QueryString["id"] != null && Request.QueryString["url"] != null)
                {
                    int intID = CheckTypeCode.GetInt(Request.QueryString["id"].ToString());
                    string strUrl = HttpContext.Current.Request.UrlReferrer.PathAndQuery;                if (intID != 0)
                    {
                        Response.ContentType = "text/html";
                        Response.Write(AddFavorites(intID, strUrl));
                        Response.Flush();
                        Response.End();

                    }
                }
            }
        }
      

  5.   

    自己的回复怎么改不了,不要if (!Page.IsPostBack)
      

  6.   

    已经知道问题了。谢谢各位
    公布下答案共享下:
    var scaurl= location.href;  
      var urlaspx ="/js/FavoritesAjax.aspx?id="+scaid+"&url="+scaurl+"&Time="+Math.random();
      objHttp.open("GET", urlaspx, true);    那调试过程中发现---
    urlaspx="/js/Favoriteajax.aspx?id=67&url=http://localhost:85/Trade/TradeDetail_57605_2.shtml&Time=0.9839"
    确实是这个urlaspx 引起的问题
      

  7.   

    if (!Page.IsPostBack)
            {
                if (Request.QueryString["id"] != null && Request.QueryString["url"] != null )
                {
                    
                }        }
    Response.End();
    ===========
    ajax发送的请求不是回滚