今天写了一个程序玩玩,发现一个问题。
javascript 和 asp.net 访问 cookie 的时候出现一个奇怪的问题。请教解答。
问题描述如下:
asp.net 程序中注册了一个cookie对象。单值对象(value)。不是存放的数据集合(values)。
通过页面的javascript正常读出该cookie值。但是通过javascript更新后该cookie后。
asp.net程序中读取的还是原来的值。但是刷新页面后javascript读取又是修改过的值。
列出所有cookie对象,发现多了一个同名cookie,该cookie为修改过的值。
看来javascript更新其实是创建了一个新的cookie。造成了asp.net和javascript各访问各的cookie对象的情况。
请教有什么办法可以让两者可以对同一cookie对象进行操作了。

解决方案 »

  1.   

    查看一下cookie名字的大小写是否完全一致,再查看一下路径path是否相同<% 
     if not ispostback then
      dim cookie as New HttpCookie("GCH","world")
      Response.Cookies.Add(cookie)  cookie = New HttpCookie("gch","world2")
      Response.Cookies.Add(cookie)
     else
       dim cookie as HttpCookie
       dim strCookieKey as string
       for i as integer = 0 to Request.Cookies.Count - 1
    cookie = Request.Cookies(i)
          Response.Write(cookie.Name & "=" & cookie.Value & "," & cookie.Path & "," & cookie.Values.Count & "<BR>")
       next
     end if
    %>
    <SCRIPT> 
    alert(document.cookie);
    </SCRIPT>   
    <form runat="server">
    <asp:Button id="btn" runat="server" Text="Refresh"/>
    </form><input type="button" onclick="document.cookie='gch=222; path=/;'; alert(document.cookie);" value="change cookie">