ci3开启csrf 遇到ajax 不知道怎么搞了
ci3开启csrf 遇到ajax 不知道怎么搞了;如 有个注册表单 输入用户名,第一次用ajax提交到后台,查询到重复了,再次修改 提交的时候 csrf 拦截了,这种怎么破,
看了论坛上的 没有试通,
谁有做过 这种的吗
最后改成了这样的
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_token_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 1800;
$config['csrf_regenerate'] = FALSE;
ajax 提交 表单时
csrf_regenerate 和 csrf_expire :要结合起来用
1.csrf_regenerate 这个为 TRUE 表示每次提交操作都会重新生成 csrf_cookie ,用ajax的 把它 关闭 设为 FALSE
2.csrf_expire 失效时长,我这里1800秒,表示 如果这个表单1800秒内没有提交 , 再提交的时候就会提示你失效了,你必须重新载入一下页面;
如果一直提交,会一直有效。
好OK了,
需要有个方式获取新生成的 token。 有两种方法,一种就是ajax请求的时候,返回header头里面有新的csrf信息,可以供下次请求用。
第二种方法,就是每次请求的时候csrf的name和value通过cookie来获取,这样每次请求的时候就可以正常通过。不过需要注意,获取cookie的时候不能全局通用。必须在ajax每次请求的时候通过cookie来获取csrf的value
页:
[1]