博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入解析javascript与asp.net对Cookie操作的异同,以及如何共用(一)。
阅读量:7009 次
发布时间:2019-06-28

本文共 1273 字,大约阅读时间需要 4 分钟。

原文

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

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

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

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

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

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

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

 

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

1
2
3
4
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修改下代码,把编码的工作交给我们自己来处理。

我们找到相应的代码

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。

源码:

 

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

你可能感兴趣的文章
一次误报引发的DNS检测方案的思考:DNS隧道检测平民解决方案
查看>>
Python操作SQLAlchemy之连表操作
查看>>
什么是架构师?
查看>>
layer.alert自定义关闭回调事件
查看>>
LESS IS MORE
查看>>
用最短的payload绕过WAF(入门)
查看>>
会话跟踪session
查看>>
微观经济学--经济学十大原理
查看>>
Tablayout ViewPage 使用示例
查看>>
linux下面MySQL变量修改及生效
查看>>
Android 6.0 如何默认打开user版本的root权限【转】
查看>>
TP框架在做上传时候提示:没有上传的文件!
查看>>
leetcode 485. Max Consecutive Ones
查看>>
IDEA使用笔记(九)——设置文件注释
查看>>
漫谈Java IO之基础篇
查看>>
CentOS 6.8 防火墙配置
查看>>
Spring Boot 2.0 整合 FreeMarker 模板引擎
查看>>
Java 知识点
查看>>
Nginx+Tomcat高性能负载均衡集群搭建
查看>>
BZOJ3573: [Hnoi2014]米特运输(树上乱搞)
查看>>