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
找到文件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
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03