javascript和asp.net操作cookie

來源:互聯網
上載者:User

  javascript的cookie和asp.net的cookie都是指向同一個東西。廢話不多說看例子。

1.用asp.net在後台寫入cookie,javascript前台讀取

    protected void Page_Load(object sender, EventArgs e)    {        HttpCookie cookie = new HttpCookie("MyCook");//初使化並設定Cookie的名稱        DateTime dt = DateTime.Now;        TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//到期時間為1分鐘        cookie.Expires = dt.Add(ts);//設定到期時間        //string tmp = System.Web.HttpUtility.UrlEncode("中文", System.Text.Encoding.UTF8);        cookie.Values.Add("userid", "123");        cookie.Values.Add("userid2", "456");        Response.AppendCookie(cookie);    }

在前台javascript用javascript讀取

    <script type="text/javascript">        var allcookies = document.cookie;        function test() {            //alert(decodeURIComponent(allcookies));            alert(allcookies);        }    </script>

前端可以正常擷取資料

  上面的例子彈出框的內容Mybook=userid=123&userid2=456

 但要注意在asp.net輸入中文的時候要轉成UTF-8碼

    protected void Page_Load(object sender, EventArgs e)    {        HttpCookie cookie = new HttpCookie("MyCook");//初使化並設定Cookie的名稱        DateTime dt = DateTime.Now;        TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//到期時間為1分鐘        cookie.Expires = dt.Add(ts);//設定到期時間        string tmp = System.Web.HttpUtility.UrlEncode("中文", System.Text.Encoding.UTF8);        cookie.Values.Add("userid", tmp);        cookie.Values.Add("userid2", "中文");        Response.AppendCookie(cookie);    }

在前台用javascript直接讀取會獲得亂碼!

MyCook=userid=%e4%b8%ad%e6%96%87&userid2=涓枃

所以輸入中文時要

 

System.Web.HttpUtility.UrlEncode("中文", System.Text.Encoding.UTF8);

 

用javascript讀取時

decodeURIComponent(allcookies)

看例子(通過decodeURIComponent可以把中文正確的讀出來

decodeURIComponent(document.cookie);

MyCook=userid=中文&userid2=涓枃

2.用javascript在前台寫入cookie,asp.net後台讀取

前台代碼

 

document.cookie = "MyCook=userid=123&userid2=456"

 

後台代碼

        if (Request.Cookies["MyCook"] != null)        {            //Response.Write("Cookie中索引值為userid的值:" + Request.Cookies["MyCook"]["userid"]);//整行            //Response.Write("Cookie中索引值為userid2的值" + Request.Cookies["MyCook"]["userid2"]);            Response.Write(Request.Cookies["MyCook"].Value);//輸出全部的值        }

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.