赞
踩
记录:easyadmin layui js监听返回结果
1.页面增加TOKEN隐藏值
<input type="hidden" name="TOKEN" value="{$row.id}">
2.JS监听返回结果,若失败,则赋值页面TOKEN值
define(["jquery", "easy-admin"], function ($, ea) { var init = { table_elem: '#currentTable', table_render_id: 'currentTableRenderId', show_url: 'cangku.bcktz/show', createCkd_url: 'cangku.bcktz/createCkd', }; var Controller = { show: function () { ea.listen(); }, createCkd:function () { // ea.listen(); ea.listen(function (data) { // 提交保存的数据 return data; }, function (res) { // 成功 ea.msg.success(res.msg, function () { ea.api.closeCurrentOpen({ refreshTable: 'currentTableRenderId' }); }); }, function (res) { // 失败 ea.msg.error(res.msg, function () { if(res.data && res.data.token){ $('input[name=TOKEN]').val(res.data.token); } }); }); }, }; return Controller; });
3.功能
public function createCkd($id) { if ($this->request->isAjax() && $this->request->isPost()) { if(jianYanToken(input('TOKEN')) === false){ $this->error('token失效,请刷新页面', ['token'=>getToken()]); } $data = [ ...... ]; $result = $this->logic->createCkd($data); if($result['status'] !== 'success'){ $this->error($result['msg'], ['token'=>getToken()]); } $this->success('保存成功'); } $this->assign('TOKEN', getToken()); return $this->fetch(); }
4.common.php 定义token方法
use think\facade\Cache; // 生成token function createToken($length=32) { $str = '12356789ABCDEFGHIJKLMNOPQRSTUVWXYZ';//34个字符 $strlen = 34; while($length > $strlen){ $str .= $str; $strlen += 34; } $str = str_shuffle($str); //随机地打乱字符串中的所有字符 $token = substr($str,0,$length); //截取字符串 Cache::tag('pageToken')->set('pageToken_' . session('admin.id'), $token); return $token; } // 验证token function jianYanToken($token) { if($token != Cache::get('pageToken_' . session('admin.id'))){ return false; } createToken(); //重置token return true; } // 获取token function getToken() { $token = Cache::get('pageToken_' . session('admin.id')); if(!$token){ $token = createToken(); //生成token } return $token; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。