深入解析javascript與asp.net對Cookie操作的異同,以及如何共用(一)。

來源:互聯網
上載者:User

在網站開發過程中,不管是前台用javascript還是在後台用伺服器端語言處理cookie,是作為一個web開發人員都必須要熟練掌握的技能。

相信大家在開發過程中都經常用到。然而如何讓前端和後端同時擷取同一份cookie我們還是需要花費上點心思。

下面我將著重介紹下這方面的見容:

1,首先多們用js向網站寫入一cookie(單索引值的比較容易,我這裡只講述下一個cookie下多索引值的處理)

為了簡單,這裡我們用jquery.cookie.js外掛程式來操作cookie,代碼如下:

$.cookie('book', 'sn=081245&title=你不能不知道的.net');

執行後我們得到的結果是:

 

2,接下來我們用C#代碼在後端來實現同樣的功能,代碼如下:

 HttpCookie bookCookie = new HttpCookie("book");            bookCookie["sn"] = "081245";            bookCookie["title"] =  HttpUtility.UrlEncode("你不能不知道的.net");            Response.AppendCookie(bookCookie);

細心的你一定發現其實裡面的cookie其實有點還不一樣,對那就是“=”在用jquery.cookie.js外掛程式處理時也被編碼啦,這樣的結果當然不符合我們的目標的。

其實這不難理解,jquery.cookie.js內部把'sn=081245&title=你不能不知道的.net'當作一個字串給編碼啦,那好,我們就去jquery.cookie.js修改下代碼,把編碼的工作交給我們自己來處理。

我們找到相應的代碼

document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');

 

修改為

document.cookie = [name, '=', value, expires, path, domain, secure].join('');

這樣我們上面的js的代碼也要做相應的處理啦,修改後為:

 function writeCookie()
 {   $.cookie('book', 'sn=081245'+'&title='+encodeURIComponent('你不能不知道的.net')); }

經過這樣的處理我們保證了前端各後端寫入的cookie值是一致的,為後面的的讀取作基礎,下一篇我將繼續講述 cookie在前,後端讀取一致,並提供相應源碼下載。

本章需要注意的幾點問題:

1,對於非英文和數字等一定要編碼後再寫入。

2,js和asp.net後台對應的編碼函數為encodeURIComponent。

源碼:猛擊下載

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.