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上免费下载,用它 ...
随机推荐
- 使用Lucene对doc、docx、pdf、txt文档进行全文检索功能的实现
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/76273859 本文出自[我是干勾鱼的博客] 这里讲一下使用Lucene对doc. ...
- cool 软件 —— Carnac(实时桌面显示按键)
1. Carnac 下载地址:Carnac, the Magnificent Keyboard Utility 使用说明:carnac – 在屏幕实时显示按键操作
- JFreeChart的简单使用
实例1:简单的饼图 public class Test { public static void main(String[] args) { //建立默认的饼图 DefaultPieDataset d ...
- macOS -- 如何通过终端开启/关闭SSH
在macOS中(较新版),基本都会配置了SSH,能完成我们开发中绝大部分功能,所以不需要再去使用第三方的软件去操作. 不过SSH守护进程是默认禁用的,我们需要手动开启 1. 查看是否开始SSH功能 s ...
- lvds cable信号
http://forums.bit-tech.net/showthread.php?t=208616
- Hive之 数据存储
首先,Hive 没有专门的数据存储格式,也没有为数据建立索引,用户可以非常自由的组织 Hive 中的表,只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据. 其次 ...
- Jmeter监控服务器的CPU
1.Jmeter监控服务器的软件:链接: https://pan.baidu.com/s/1Ag75IXqR2XMe8RpZA4nvHg 密码: yki2 2.(1)Window版本 <1> ...
- CentOS7.2 安装redis 3.0.6集群
1.环境确认 a.系统版本查看 [hadoop@p168 ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) b.安装依 ...
- 【python】函数名存在变量中
变量函数:意思就是将函数名存在变量中,然后根据变量值动态的调用需要的函数. LOGIN = 'xxxx' PASSWD = "xxx" URL = 'xxxxx' def hand ...
- mac下执行 appium-doctor 出现 “Could not detect Mac OS X Version from sw_vers output: '10.12 '” 解决方法
You can config file by this command: grep -rl "Could not detect Mac OS X Version from sw_vers ...