cookie

同域名下两个子级域名共享cookie

倖福魔咒の 提交于 2020-03-07 11:19:28
有两个域名 s.a.com 和 q.a.com; 他们都是属于一个一级域名下的域名,并不是跨域; 前者为后台管理系统,有登录页面;后者为官网,没有登录功能; 现在的需求是:后台登录之后,官网也需要显示登录状态,后台退出之后,官网也会显示退出登录状态; 所以我们只需要在前者域名中写添加和删除cookie的代码即可。 添加cookie //成功回调函数 success: function (data) { $.each(data, function (ele, index) {   //ele是key;index是value   addCookie(ele, index);   setCookie(ele, index,1);//这里必须传入第三个参数 }); } function addCookie(objName, objValue, objHours) { //当前域名添加cookie var str = objName + "=" + escape(objValue); if (objHours > 0) { //为0时不设定过期时间,浏览器关闭时cookie自动消失   var date = new Date();   var ms = objHours * 3600 * 1000;   date.setTime(date.getTime() + ms);   str +=

cookie读取与设置

陌路散爱 提交于 2020-03-07 11:19:06
function getCookie(c_name) { var that = this;     if (document.cookie.length > 0) { //检查这个cookie是否存在,不存在就为 -1 c_start = document.cookie.indexOf(c_name + "=") if (c_start != -1) { //获取cookie值的开始位置 c_start = c_start + c_name.length + 1; //通过";"号是否存在来判断结束位置 c_end = document.cookie.indexOf(";", c_start); if (c_end == -1){ c_end = document.cookie.length; } //通过substring()得到了值 return unescape(document.cookie.substring(c_start, c_end))   }     }     return ""   } getCookie("fdfdfdfdfd")就是获取cookie 设置cookie function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays

vue 存取、设置、清除cookie

旧巷老猫 提交于 2020-03-07 11:17:16
步骤: 第一步:assets目录下添加cookie.js文件 export function setCookie(c_name,value,expire) { var date=new Date() date.setSeconds(date.getSeconds()+expire) document.cookie=c_name+ "="+escape(value)+"; expires="+date.toGMTString() //console.log(document.cookie) } export function getCookie(c_name){ if (document.cookie.length>0){ let c_start=document.cookie.indexOf(c_name + "=") if (c_start!=-1){ c_start=c_start + c_name.length+1 let c_end=document.cookie.indexOf(";",c_start) if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)) } } return "" } export function

HTML5中的sessionStorage和localStorage

谁说我不能喝 提交于 2020-03-07 08:29:06
html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。 sessionStorage 用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。 而 localStorage 用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。 web storage和cookie的区别 Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。 除此之外, Web Storage 拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。 但是Cookie也是不可以或缺的:Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生(来自@otakustay 的纠正) html5 web storage的浏览器支持情况

RabbitMQ介绍及安装部署

半城伤御伤魂 提交于 2020-03-07 07:46:08
本节内容: RabbitMQ介绍 RabbitMQ运行原理 RabbitMQ重要术语 三种ExchangeType RabbitMQ集群种类 集群基本概念 镜像模式部署集群 一、RabbitMQ介绍 消息系统通过将消息的发送和接收分离来实现应用程序的异步和解偶。 或许你正在考虑进行数据投递,非阻塞操作或推送通知。或许你想要实现发布/订阅,异步处理,或者工作队列。所有这些都属于消息系统的模式。 RabbitMQ是一个消息代理,一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息再传输过程中的安全。 RabbitMQ是一个在AMQP协议标准上完整的、可复用的企业消息系统。它遵循Mozilla Public License开源协议,采用Erlang语言实现的工业级的消息队列。 二、RabbitMQ运行原理 RabbitMQ的两大核心组件是Exchange和Queue,以下是它的运行原理图: 三、RabbitMQ重要术语 Server(broker): 接受客户端连接,实现AMQP消息队列和路由功能的进程。 Vitual Host: 这是一个虚拟概念,类似于权限控制组,一个Vitual Host里面可以有若干个Exchange和Queue,但是权限控制的最小粒度是Vitual Host。 Exchange: 接收生产者发送的消息

Django中Ajax提交数据的CSRF问题

£可爱£侵袭症+ 提交于 2020-03-07 05:28:47
错误信息: Forbidden (CSRF token missing or incorrect.): 什么是CSRF: django为用户实现防止跨站请求伪造的功能,通过中间件 django.middleware.csrf.CsrfViewMiddleware 来完成。而对于django中设置防跨站请求伪造功能有分为全局和局部。 全局: 中间件 django.middleware.csrf.CsrfViewMiddleware 局部:from django.views.decorators.csrf import csrf_exempt,csrf_protect @csrf_protect,为当前函数强制设置防跨站请求伪造功能,即便settings中没有设置全局中间件。 @csrf_exempt,取消当前函数防跨站请求伪造功能,即便settings中设置了全局中间件。 原理 当用post提交数据的时候,django会去检查是否有一个csrf的随机字符串,如果没有就会报错 这里我测试的是用Ajax提交的方式: 方法一:在urls.py中添加csrf_exempt,过滤csrf from django.views.decorators.csrf import csrf_exempt url(r'^api/v1/some-resource$', csrf_exempt

django进阶

心已入冬 提交于 2020-03-07 04:42:22
   Form django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from django.core.exceptions import ValidationError def mobile_validate(value): mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$') if not mobile_re.match(value): raise ValidationError('手机号码格式错误') class PublishForm(forms.Form): user_type_choice = ( (0, u'普通用户'), (1, u'高级用户'), ) user_type = forms.IntegerField(widget=forms.widgets.Select(choices=user_type_choice, attrs={'class': "form-control"})) title = forms.CharField(max_length=20, min

django进阶

我们两清 提交于 2020-03-07 04:41:09
django ORM操作 models.py from django.db import models # Create your models here. class Book(models.Model): name = models.CharField(max_length=128) price = models.PositiveSmallIntegerField(null=True)#正数,null=True不是必填 authors = models.ManyToManyField('Author') publisher = models.ForeignKey('Publisher') pub_date = models.DateField() # memo = models.CharField(null=True,max_length=64)数据库新增字段的时候,需要加上null=True #为了在查询时显示对象的名字 def __str__(self): return self.name class Author(models.Model): name = models.CharField(max_length=32) email = models.EmailField(unique=True) def __str__(self): return self.name

Django进阶 messages框架

无人久伴 提交于 2020-03-07 04:38:23
在 web 应用程序中,通常需要在处理表单或其他类型的用户输入之后,向用户显示一个通知消息(也称为 flash message)。对于这个功能,Django 提供基于 Cookie 和会话的消息,无论是匿名用户还是认证的用户。 消息框架允许临时将消息存储在请求中,并在下一个请求中提取它们并显示。 每个消息都带有一个特定 level 标签,表示其优先级。 启用消息框架 消息框架的实现通过一个中间件类和对应的上下文处理器。django-admin startproject 命令 创建的默认 settings.py 已经包含启用消息框架功能需要的所有的设置: INSTALLED_APPS django.contrib.messages MIDDLEWARE django.contrib.sessions.middleware.SessionMiddleware django.contrib.messages.middleware.MessageMiddleware 默认的后端存储依赖 sessions。 所以中间件中必须启用 SessionMiddleware 并出现在 MessageMiddleware 之前。 TEMPLATES context_processors 选项包含 django.contrib.messages.context_processors.messages

2020/03/05 03-查询表达式、Session-Cookie机制、JWT

空扰寡人 提交于 2020-03-07 04:32:31
模型操作也就是model类提供的操作能力,一般操作苏剧无非就是增删改查,CRUD,要学会再django中如何操作,提供了一个orm,这个orm提供了操作的东西,叫管理器对象,管理器对象是一个很特别的类,不能直接调用,这个实例是捆绑在model对象上的。 自己创建可以替换,也可以多替换几个 orm的操作就是将增删改查所有的方法操作换成sql语句,这个语句是交给orm来做的,orm更在乎对象和关系,,比如用外键描述关系。比如一对一,多对多。 对象是指面向对象的对象,用类和实例的方式描述大千世界,数据库是用关系模型来描述世界. 类对应表,类属性对应表字段。一行行记录对应一个个实例 操作和sqlalchemy很像,都是懒惰的方式,如果不使用就不查,减轻对数据库的负担,这样就让数据库的更多时间给别人使用。查询完会缓存,缓存在数据集里。 也可以使用第三方,把有意义的数据存放到里面进行缓存,redis可以设定缓存多长时间,或者到什么时候清除 切片也很懒惰,不用也不查,切片跟limit和offset语句是对应起来的,但是之间有个计算关系 过滤器,就是all,filter,一般很少用all,查询 了object.filter用的更多,后面再做切片,用filter的时候小于大于成了问题,不能用了,所以提供了新的语法lookup表达式。 使用主键的时候可以使用PK这个值。 提供了一些查询单个值的方式