egg(113)--egg之登入成功跳轉到登入之前的頁面
流程
- 點選登入按鈕,前端把當前的url,傳給後臺
- 後臺把url傳給,登入頁面
- 登入頁面,點選登入,跳轉到登入前的頁面
效果
第一步
第二步
第三步
router
router.get('/login', initMiddleware, controller.default.pass.login);
點選登入按鈕
view
appviewdefaultpublicheader.html
<li><a href="javascript:void(0)" id="loginButton" target="_blank">登入</a></li>
apppublicdefaultjsbase.js
initLogin: function() { $("#loginButton").click(function() { // alert(location.href); location.href = '/login?returnUrl=' + encodeURIComponent(location.href); }) }
controller
appcontrollerdefaultpass.js
async login() { //獲取returnUrl var returnUrl = this.ctx.request.query.returnUrl; returnUrl = returnUrl ? decodeURIComponent(returnUrl) : '/'; await this.ctx.render('default/pass/login.html', { returnUrl: returnUrl }); }
登入頁面
appviewdefaultpasslogin.html
<input type="hidden" name="returnUrl" id="returnUrl" value="<%=returnUrl%>" />
$("#doLogin").click(function(e) { var returnUrl = $('#returnUrl').val(); var username = $('#username').val(); var password = $('#password').val(); var identify_code = $('#identify_code').val(); var reg = /^[\d]{11}$/; if (!reg.test(username)) { alert('手機號輸入錯誤'); return false; } if (identify_code.length < 4) { alert('驗證碼長度不合法'); return false; } //ajax請求 $.post('/pass/doLogin', { username: username, identify_code: identify_code, password: password }, function(response) { console.log(response); if (response.success == true) { // location.href = "/"; location.href = returnUrl; } else { $("#identify_code_img").attr('src', '/verify?mt=' + Math.random()); alert(response.msg); } }) })