<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);
}
});
}

最新文章

  1. 获取Echarts的DataZoom的起始值
  2. linux替换文件指定字符串前面的内容
  3. .NET正则表达式匹配Silverlight
  4. webservice的常用注解
  5. [转] Android利用tcpdump抓包
  6. DevExpress Crack
  7. 一些常用到的Centos命令
  8. Redis VS Memcached
  9. CodeForces 707C Pythagorean Triples (数论)
  10. HW7.9
  11. windows下nginx的安装及使用方法入门
  12. Nginx简介与安装
  13. 解决iOS手势冲突问题
  14. Cocos2D:塔防游戏制作之旅(四)
  15. [android] 内容提供者实现
  16. Content-Length mismatch, received 431737 bytes out of the expected 760836
  17. JaveWeb 公司项目(2)----- 类模态窗口显示DIV并将DIV放置在屏幕正中间
  18. gitlab常用命令
  19. Chapter 3 Phenomenon——24
  20. git 推送出现 &quot;fatal: The remote end hung up unexpectedly&quot;

热门文章

  1. Java第七次作业--图形用户界面
  2. 用 Python 快速实现 HTTP 和 FTP 服务器
  3. 事务的隔离级别以及oracle中的锁
  4. Js 实战3(实现全选)
  5. Window平台下React Native 开发环境搭建
  6. 在vc++上简单搭建环境(包括文件引用)
  7. iSCSI 协议
  8. Bootstrap-Plugin:按钮(Button)插件
  9. [LigerUI]使用记录
  10. [转]MVC 分页