【发布时间】:2015-06-12 15:10:13
【问题描述】:
我正在使用启用 CSRF 的 CodeIgniter 3。我有一个页面正在使用 X 可编辑库 http://vitalets.github.io/x-editable/index.html 在该页面上进行内联编辑。
有人在 CodeIgniter 和 CSRF 开启的情况下使用 X-editable 吗?
我的问题是当我启用 CSRF 时,我收到以下 CodeIgniter 生成的错误:
<h1>An Error Was Encountered</h1>
<p>The action you have requested is not allowed.</p>
如果我在 CI 中禁用 CSRF,它会正常工作。
我所知道的是,在使用 X-editable 库时,我无法找到使用 CSRF 令牌添加隐藏字段的方法,因为 javascript 库添加了它自己的表单和表单字段。我知道 CI 的 open_form() 方法会自动添加带有 CSRF 令牌的隐藏字段,但我没有选择将它与这个特定的库一起使用。
有什么想法吗?我已经坚持了几天了。
这是我的 CI 项目中的 config.php 文件
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'mycsrfname';
$config['csrf_cookie_name'] = 'csrfcookiename';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
这是在控制器中
$name = $this->input->post('name');
$value = $this->input->post('value');
$pk = $this->input->post('pk');
$result = $this->garage_model->editItem($name,$value,$pk);
【问题讨论】:
标签: javascript php codeigniter csrf x-editable