//处理登录页面的相关动作 //weidy@2013-08-01 var path = "";//后台路径 var configData = {}; var browserInfo = null; var processStep = 0; var processInterval = null; var usedTime = 0; var projectName = ""; var pathName = ""; $(document).ready(function() { // 先判断浏览器版本 browserInfo = checkBrowser(); pathName = window.document.location.pathname; projectName = pathName.substring(0, pathName.substr(1).indexOf('/') + 1) + "/"; //处理页面的内容 getConfig(function(){ checkParamFromSso(function(username,params){ doSingleLogin(username,params); }); }); }); function getConfig(callback){ $.getJSON(projectName + "config.json",function(data){ configData = data; if(configData.isDebug == "true" || configData.isDebug == true){ path = configData.backPath; }else{ path = pathName; if(pathName.indexOf("/")>-1){ path = path.substring(0,path.lastIndexOf("/")); } } if(callback){ callback(); } }); } function checkParamFromSso(callback){ $.ajax({ url:window.location, type:'POST', success:function(data,textStatus,jqXHR){ var userid = jqXHR.getResponseHeader('iv-user'); if(!userid || userid == null || userid == ''){ showError("没有获取到用户名,无法执行单点登录"); return false; } var params = new Object(); var url = window.location.search; if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i < strs.length; i ++) { params[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]); } } if(callback){ callback(userid,params); } }, error:function(jqXHR,textStatus,errorThrown){ showError("出现了异常,无法单点登录," + textStatus); } }); } function crosPost(url1,data,callback,errorCallback){ $.ajax({ type:'post', // xhrFields: { // withCredentials: true // }, // crossDomain: configData.isDebug?(true == !(document.all)):false, url:path + url1, data:data, success:function(data){ var result = eval("(" + data + ")"); if(callback){ callback(result); } }, error:function(xhr,error){ if(errorCallback){ errorCallback(xhr,error); } } }); } // 显示错误 function showError(text) { $("#msg").html( text); $("#errorMsg").show(); } // 登录 function doSingleLogin(userid,params) { showLoading(); var loginData = { userid : userid, password : "", isForceLogin : true, browser:browserInfo.browser, browserversion:browserInfo.browserversion, osversion: browserInfo.osversion }; for(var key in params){ loginData[key] = params[key]; } //因为每个项目,在登录后获取的内容可能会有不一样,所以登录的路径支持配置configData.loginUrl crosPost(configData.singleLoginUrl,loginData,function(result){ hideLoading(); if(result == undefined || result == null){ showError("登录出现了错误!请查看服务器是否开启"); } if (result.success){ window.location.href = projectName + "main.html"; }else { showError(result.msg); } },function(xhr,error){ hideLoading(); showError(error); }); } function showLoading(){ $(".loadbg").show(); $(".processbar").show(); $(".loading").show(); var preWidth = $(".loading").css("width"); if(preWidth.indexOf("px")>-1){ preWidth = preWidth.replace("px",""); } preWidth = preWidth*1/10; processInterval = window.setInterval(function(){ $("#useTime").html(usedTime + 1); $(".processbar").css("width",preWidth*(processStep+1)); usedTime ++; processStep ++ ; if(processStep == 10){ processStep = 0; } },1000); } function hideLoading(){ $(".loadbg").hide(); $(".processbar").hide(); $(".loading").hide(); processStep = 0; usedTime =0; if(processInterval != null){ window.clearInterval(processInterval); } }