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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 原文 http://www.cnblogs.com/leleroyn/archive/2012/02/22/2362746.html 在网站开发过程中,不管是前台用javascript还是在后台用服务器端语言处理cookie,是作为一个web开发者都必须要熟练掌握的技能。

原文 http://www.cnblogs.com/leleroyn/archive/2012/02/22/2362746.html

在网站开发过程中,不管是前台用javascript还是在后台用服务器端语言处理cookie,是作为一个web开发者都必须要熟练掌握的技能。

相信大家在开发过程中都经常用到。然而如何让前端和后端同时获取同一份cookie我们还是需要花费上点心思。

下面我将着重介绍下这方面的见容:

1,首先多们用js向网站写入一cookie(单键值的比较容易,我这里只讲述下一个cookie下多键值的处理)

为了简单,这里我们用jquery.cookie.js插件来操作cookie,代码如下:

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

执行后我们得到的结果是:

image

 

2,接下来我们用C#代码在后端来实现同样的功能,代码如下:

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

image

细心的你一定发现其实里面的cookie其实有点还不一样,对那就是“=”在用jquery.cookie.js插件处理时也被编码啦,这样的结果当然不符合我们的目标的。

其实这不难理解,jquery.cookie.js内部把'sn=081245&title=你不能不知道的.net'当作一个字串给编码啦,那好,我们就去jquery.cookie.js修改下代码,把编码的工作交给我们自己来处理。

我们找到相应的代码

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

 

修改为

?
1
document.cookie = [name, '=' , value, expires, path, domain, secure].join( '' );
这样我们上面的js的代码也要做相应的处理啦,修改后为:
?
1
function writeCookie()
?
1
2
3
{
   $.cookie( 'book' , 'sn=081245' + '&title=' +encodeURIComponent( '你不能不知道的.net' ));
}

经过这样的处理我们保证了前端各后端写入的cookie值是一致的,为后面的的读取作基础,下一篇我将继续讲述 cookie在前,后端读取一致,并提供相应源码下载。

本章需要注意的几点问题:

1,对于非英文和数字等一定要编码后再写入。

2,js和asp.net后台对应的编码函数为encodeURIComponent。

源码:猛击下载

 

原创文字只代表本人某一时间内的观点或结论,本人不对涉及到的任何代码担保。转载请标明出处!

目录
相关文章
|
4月前
|
Web App开发 JavaScript 前端开发
浏览器与Node.js事件循环:异同点及工作原理
浏览器与Node.js事件循环:异同点及工作原理
|
28天前
|
存储 机器学习/深度学习 数据采集
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用
|
2月前
|
SQL 安全 数据库
Ruby on Rails 数据库迁移操作深度解析
【7月更文挑战第19天】Rails 的数据库迁移功能是一个强大的工具,它帮助开发者以版本控制的方式管理数据库结构的变更。通过遵循最佳实践,并合理利用 Rails 提供的迁移命令和方法,我们可以更加高效、安全地管理数据库结构,确保应用的稳定性和可扩展性。
|
3月前
|
存储 算法 搜索推荐
深入解析String数组的操作与性能优化策略
深入解析String数组的操作与性能优化策略
|
2月前
|
存储 数据管理 数据库
CRUD操作实战:从理论到代码实现的全面解析
【7月更文挑战第4天】在软件开发领域,CRUD代表了数据管理的四个基本操作:创建(Create)、读取(Read)、更新(Update)和删除(Delete)。这四个操作构成了大多数应用程序数据交互的核心。本文将深入讲解CRUD概念,并通过一个简单的代码示例,展示如何在实际项目中实现这些操作。我们将使用Python语言结合SQLite数据库来演示,因为它们的轻量级特性和易用性非常适合教学目的。
107 2
|
3月前
|
监控 关系型数据库 分布式数据库
PolarDB时间范围内PCU用量统计:深度解析与操作指南
了解PolarDB云原生数据库的PCU计费至关重要,1PCU相当于1核2GB资源。文章详述如何统计指定时间内PCU用量:登录控制台,查看集群监控,导出数据分析,或使用API接口获取信息。统计结果有助于分析数据库负载、优化资源使用和成本控制。通过对比不同时间段的PCU用量,用户可做出扩展或优化决策。未来,PolarDB有望提供更强大的统计工具。
|
3月前
|
搜索推荐 Android开发 iOS开发
深入解析安卓与iOS操作系统的异同
安卓和iOS是目前两大主流移动操作系统,它们分别代表了开放性和封闭性的设计理念。本文将从系统架构、用户界面、应用生态等方面深入探讨安卓和iOS之间的异同,帮助读者更好地理解这两个操作系统的特点和优势。
96 3
|
2月前
|
存储 算法 搜索推荐
深入解析String数组的操作与性能优化策略
深入解析String数组的操作与性能优化策略
|
2月前
|
JavaScript
js 解析和操作树 —— 获取树的深度、提取并统计树的所有的节点和叶子节点、添加节点、修改节点、删除节点
js 解析和操作树 —— 获取树的深度、提取并统计树的所有的节点和叶子节点、添加节点、修改节点、删除节点
64 0
|
3月前
|
SQL DataWorks Oracle
DataWorks产品使用合集之datax解析oracle增量log日志该如何操作
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
39 0

推荐镜像

更多