JS Code Snippet --- Cookie
<a id="quitBtn" href="#" class="exit">Exit</a>
<a id="quitBtn" href="" class="exit">Exit</a>
$(function(){
$('#loginBtn').on('click',loginBtnClick);
if(pageRefresh()){
$('#login').hide();
$('#home').show();
}else{
$('#login').show();
$('#home').hide();
}
});
/**
* @brief To check pin and token, called when use F5 to refresh.
* @return if pin and token both exists return true, other false
*/
function pageRefresh()
{
var pin = getCookie(APP.pinName);
var token = getCookie(APP.tokenName);
if( !pin || typeof(pin) == 'undefined' || pin.length == 0 ){
deleteCookie(APP.pinName); deleteCookie(APP.tokenName);
return false;
}
if( !token || typeof(token) == 'undefined' || token.length == 0 ){
deleteCookie(APP.pinName); deleteCookie(APP.tokenName);
return false;
}
/// if run here, means pin and token exist.
var form = new FormData();
form.append( 'pin', pin );
form.append( 'token', token );
var ajaxResult = false;
$.ajax({
url: 'POST_PAGE_REFRESH' ,
type: 'POST',
data: form,
async: false,
cache: false,
dataType:'json',
contentType: false,
processData: false,
success:function( data ){
if( 'undefined' == typeof(data.state) ){
alert('data.state undefined');
ajaxResult = false;
return;
}
if( typeof(data.msg) == 'undefined' ){
ajaxResult = false;
alert('data.msg undefined');
return;
}
if( 'ok' !== data.state )
{
deleteCookie(APP.pinName); deleteCookie(APP.tokenName);
ajaxResult = false;
alert("Error 1 :" + data.msg);
return;
}
ajaxResult = true;
},
error:function(xhr){
ajaxResult = false;
return;
}
});
return ajaxResult;
}
/**
* @beief PIN Code login click button
*/
function loginBtnClick()
{
var pin = $('input[name="pin"]').val();
pin.trim();
if( pin == "" ){
alert("PIN Code Not Empty.");
$('input[name="pin"]').val("");
return;
}
if( pin.length !== 4 ){
alert("The length of Input PIN Code must be 4 number char.");
$('input[name="pin"]').val("");
return;
}
var token = randomString(32);
var form = new FormData();
form.append( 'pin', pin );
form.append( 'token', token );
$.ajax({
url: 'POST_PIN_TOKEN' ,
type: 'POST',
data: form,
async: true,
cache: false,
dataType:'json',
contentType: false,
processData: false,
success:function( data ){
if( !checkAjaxData(data) ){
$('input[name="pin"]').val("");
return;
}
addCookie(APP.pinName, pin, 1);
addCookie(APP.tokenName, token, 1);
$('#login').hide();
$('#home').show();
},
error:function(xhr){
console.error( "Error 2: " + xhr.status + " " + xhr.statusText );
}
});
}
$( function(){
$('#quitBtn').on('click', quitBtnClick);
}
/**
* @biref: Quit Button Click Function
* and them tell server to delete token
*/
function quitBtnClick()
{
var quitForm = new FormData();
quitForm.append('pin',getCookie(APP.pinName));
quitForm.append('token',getCookie(APP.tokenName));
$.ajax({
url: 'POST_QUIT',
type: 'POST',
data: quitForm,
async: true,
cache: false,
dataType:'json',
contentType: false,
processData: false,
success: function (data) {
if( !checkAjaxData(data) ){
return;
}
deleteCookie(APP.pinName); deleteCookie(APP.tokenName);
location.href = "./";
},
error: function (data) {
//console.log('load Error: '+xhr.status+': '+xhr.statusText);
}
});
}
JS Code Snippet --- Cookie的更多相关文章
- .NET获取不到js写的cookie解决方法
今晚使用javascript设置一个来路的cookie,之后使用ASP.NET获取这个cookie值,发现ASP.NET获取不到JS设置的cookie值,真郁闷中,以下是JS写Cookie的代码: C ...
- CKEditor 4.4.1 添加代码高亮显示插件功能--使用官方推荐Code Snippet插件
随着CKEditor4.4.1的发布,以前一直困扰的代码高亮问题终于完美的得到解决,在CKEditor4.4中官方发布了Code Snippet这个代码片段的插件,终于可以完美的内嵌使用代码高亮了,以 ...
- 使用 Code Snippet 简化 Coding
在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for.foreach ? 在编写这两个循环语句的时候,你是一个字符一个字符敲还是使用 Visual Studio 提 ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- Visual Studio 如何使用代码片段Code Snippet提高编程速度!!!
使用Code Snippet简化Coding 在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for.foreach ? 在编写这两个循环语句的时候,你是一个字符 ...
- 如何创建 Code Snippet
比如有一行自定义代码段: @property (nonatomic,copy) NSString *<#string#>; 需要添加到 Code Snippet 上,以帮助开发人员开发更便 ...
- ES6 will change the way you write JS code.
https://hacks.mozilla.org/2015/04/es6-in-depth-an-introduction/ Counting to 6 The previous editions ...
- 善用VS中的Code Snippet来提高开发效率
http://www.cnblogs.com/anderslly/archive/2009/02/16/vs2008-code-snippets.html http://www.cnblogs.com ...
- 介绍 .Net工具Code Snippet 与 Sql Server2008工具SSMS Tools Pack
不久前,某某在微软写了一个很酷的工具:Visual Stuido2008可视化代码片断工具,这个工具可以在http://www.codeplex.com/SnippetDesigner上免费下载,用它 ...
随机推荐
- Echart参数详解收藏
最全: https://www.cnblogs.com/Kqingniao/p/5833419.html 柱形图: https://blog.csdn.net/qq_36330228/article/ ...
- 前端打印日志到localStroge并导出
interface LogEntry { data: any time: Date } export class PersistantLog { //最大条数 maxEntries = 3000; i ...
- spring-security-4 (5)spring security Java配置实现自定义表单认证与授权
前面三篇讲解了spring security的搭建以及简单的表单认证与授权原理.本篇将实现我们自定义的表单登录与认证. 本篇不会再讲项目的搭建过程,因为跟第二节的搭建如出一辙.本篇也不会将项目中所有 ...
- 博客网站-Hexo+GitHub+Netlify
Hexo+GitHub+Netlify一站式搭建属于自己的博客网站 https://www.cnblogs.com/kerbside/p/10130606.html https://hhongwen. ...
- [BZOJ3162]独钓寒江雪
bzoj description 你要给一个树上的每个点黑白染色,要求白点不相邻.求本质不同的染色方案数. 两种染色方案本质相同当且仅当对树重新标号后对应节点的颜色相同. \(n\le 5\times ...
- 【idea】idea的常规设置
[一]在输入框输入字符,自动提示代码 File->Power Save Mode 去掉“对号” [二]自动代码提示的快捷键设置 (1)不区分大小写提示 (2)修改快捷提示快捷键.将basic= ...
- PAT 1021 个位数统计 C语言
1021. 个位数统计 (15) 给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1, dk-1>0) ...
- ccflow之相对路径
最近在使用集成CCFlow系统时,在项目中直接运行可以,但发布到项目时老是报找不到文件的错误,后跟踪发现 BP.WF.Dev2Interface.UI_Window_OneWork(this.FK_F ...
- nginix.conf 中的gzip模块设置
gizp模块配置 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; g ...
- 今日头条、抖音、西瓜、火山、微视、陌陌等自媒体平台小视频批量下载工具v1.1.0(视频搬运福利)
前言 目前各大自媒体平台爆火,网络流量暴涨,各大自媒体平台的小视频为广大个广告主带来了如泉涌般的的视频流量,更给广大的自媒体小编带来了丰厚的利益回报,想要创做更多的自媒体内容着实不易,下面给广大的小视 ...