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

2019-12-11 16:43:05 浏览数 (1)

使用的框架版本:Thinkphp3.2.5

找到文件ThinkPHPLibraryThinkController.class.php

头部修改

代码语言:javascript复制
namespace Think;
代码语言:javascript复制
namespace Think;
use BehaviorTokenBuildBehavior;

查找dispatchJump

代码语言:javascript复制
        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);
        }

修改为

代码语言:javascript复制
        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);
        }

找到文件

ThinkPHPLibraryBehaviorTokenBuildBehavior.class.php

代码语言:javascript复制
private function getToken()

修改为

代码语言:javascript复制
public function getToken()

ajax提交数据就可以看到新的token

紧接着自己在ajax回调中修改的值

代码语言:javascript复制
<meta name="__token__" content="回调回来的token">
<input type="hidden" name="__token__" value="回调回来的token">

这样就可以ajax无刷新更新token

版权声明:若无特殊注明,本文皆为《xiaopang》原创,转载请保留文章出处。

本文链接:thinkphp3.2解决ajax无法刷新表单令牌token - https://cloud.tencent.com/developer/article/1552517

0 人点赞