Thinkphp3.2解决ajax无法刷新表单令牌token

时间:2023年05月11日

/

来源:网络

/

编辑:佚名

使用的框架版本:Thinkphp3.2.5
找到文件ThinkPHP\Library\Think\Controller.class.php
头部修改
namespace Think;
复制
namespace Think;
use Behavior\TokenBuildBehavior;
复制
查找dispatchJump
        if (true === $ajax || IS_AJAX) {
            // AJAX提交
            $data           = is_array($ajax) ? $ajax : array();
            $data['info']   = $message;
            $data['status'] = $status;
            $data['url']    = $jumpUrl;
            $data['token_key']    = $token[1];
            $data['token_Value']    = $token[2];
            $this->ajaxReturn($data);
        }
复制
修改为
        if (true === $ajax || IS_AJAX) {
            // AJAX提交
            /******************************/
            $tokenduixiang=new TokenBuildBehavior();
            $token=$tokenduixiang->getToken();
            /******************************/
            $data           = is_array($ajax) ? $ajax : array();
            $data['info']   = $message;
            $data['status'] = $status;
            $data['url']    = $jumpUrl;
                        $data['token']    = $token[1]."_".$token[2];
            $this->ajaxReturn($data);
        }
复制
找到文件
ThinkPHP\Library\Behavior\TokenBuildBehavior.class.php
private function getToken()
复制
修改为
public function getToken()
复制
ajax提交数据就可以看到新的token

紧接着自己在ajax回调中修改的值
<meta name="__token__" content="回调回来的token">
<input type="hidden" name="__token__" value="回调回来的token">
复制
这样就可以ajax无刷新更新token
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。