我在A页面种下COOKIES,如:
HttpCookie hc = new HttpCookie("a","test");
hc.Expires = DateTime.Now.AddMonths(12);
Response.Cookies.Add(hc);在B页面取:
Request.Cookies["a"].Value没有值,请问是怎么回事?

解决方案 »

  1.   

    应该不会吧,我刚才测试了一下你的代码,没有任何问题啊,是你的浏览器禁用了Cookies吗?
      

  2.   

    没有禁用,我都调了一天了,实在找不出问题来了。
    在页面中的COOKIES可以用,在CS代码里这样写的就找不到了。。
    function set_Cookie(K, V)
        {
        var expdate = new Date();
        expdate.setTime (expdate.getTime() + (365 * 24 * 60 * 60 * 1000));
        document.cookie = K + "=" + V + "; expires=" + expdate.toGMTString() +  "; path=/";
        } 是不是项目的原因?我的项目是.net 2.0中的 asp.net ajax项目
      

  3.   

    在a.aspx的PAGELOAD种下COOKIES: 
    HttpCookie hc = new HttpCookie("a","test"); 
    hc.Expires = DateTime.Now.AddMonths(12); 
    Response.Cookies.Add(hc); 
    A页面没做任何操作,浏览器地址输入b.aspx(跟a.aspx在网站同一目录)b.apsx取不到: 
    Request.Cookies["a"].Value 如果:a.aspx种完后Response.Redirect("b.aspx");
    就可以取到了,为什么?
      

  4.   

    我在a中的page_load中写入cookies后在地址栏中直接输入b的地址是可以取得的
    实在不知道为什么你不可以,等待高手来回答
      

  5.   

    按照楼主所说,测试了一下可以得到
    public partial class A : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HttpCookie hc = new HttpCookie("a", "test");
            hc.Expires = DateTime.Now.AddMonths(12);
            Response.Cookies.Add(hc);  
        }
    }public partial class B : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(Request.Cookies["a"].Value );  
        }
    }
      

  6.   

    难道是asp.net ajax项目的原因吗?
      

  7.   

    所以我说最好贴一下你的代码,如果是Ajax项目,在第一次Page_Load肯定是写Cookie了,但以后页面和服务器交互的时候Page_Load是不一定执行的
      

  8.   


    public partial class a : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                        HttpCookie hc = new HttpCookie("a","test");
                        hc.Expires = DateTime.Now.AddMonths(12);
                        hc.Path = "/";
                        Response.Cookies.Add(hc);
                }
            }
    }
    public partial class b : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                        Response.Write(Request.Cookies["a"].Value);
                }
            }
    }
    执行完a.aspx 关了浏览器,再打开b.apsx 找不到刚才的cookies.
      

  9.   

    楼上的代码,我在普通的ASP.NET网站和ASP.NET Ajax-Enable网站都试了,都可以读出来
      

  10.   

    我也在普通的ASP.NET网站和ASP.NET Ajax-Enable网站都试了,也都可以读出来
      

  11.   

    好了,结帖。原因可能是:
    我先从b.aspx到a.aspx,然后在a.aspx种下cookies,然后到b.aspx取没有。现在我在b.aspx里种下,再到a.aspx,再到b.aspx就有了。。