gpt4 book ai didi

javascript - 将 X-editable 与 CodeIgniter 3 CSRF 问题结合使用

转载 作者:行者123 更新时间:2023-12-03 10:23:49 24 4
gpt4 key购买 nike

我正在使用启用了 CSRF 的 CodeIgniter 3。我有一个正在使用 X-editable 库 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 token 添加隐藏字段的方法,因为 javascript 库添加了它自己的表单和表单字段。我知道 CI 的 open_form() 方法会自动添加带有 CSRF token 的隐藏字段,但我无法选择将其与这个特定的库一起使用。

有什么想法吗?我已经被这个问题困扰了几天了。

这是我的 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();

这是在 Controller 中

$name = $this->input->post('name');
$value = $this->input->post('value');
$pk = $this->input->post('pk');
$result = $this->garage_model->editItem($name,$value,$pk);

最佳答案

禁用 ajax 调用的 CSRF token 并不是一个好主意。相反,您应该通过参数发送 token :

params: function(params) {
params.csrfToken = $.cookie('csrfCookie');
return params;
}

关于javascript - 将 X-editable 与 CodeIgniter 3 CSRF 问题结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com