【问题标题】:Ajax stopped working after enabling csrf_protection [duplicate]启用 csrf_protection 后 Ajax 停止工作 [重复]
【发布时间】:2015-08-26 08:38:24
【问题描述】:

我已更改配置文件并设置:

$config['csrf_protection'] = TRUE;

在此之后,ajax 调用停止工作,当我设置为FALSE ajax 开始工作。 我必须启用csrf_protection,那么如何让我的 Ajax 开始工作?

错误:加载资源失败:服务器响应状态为 403(禁止)

【问题讨论】:

  • 该页面上的链接,beheist - 详细解释的链接正在重建,因此无法访问它,我之前尝试过,因此没有选择,只能自己发布,谢谢。

标签: php jquery ajax codeigniter csrf-protection


【解决方案1】:

您需要像这样设置 csrf 令牌:

$(function($) {
    // this bit needs to be loaded on every page where an ajax POST may happen
    $.ajaxSetup({
        data: {
            csrf_test_name: $.cookie('csrf_cookie_name')
        }
    });

    // now you can use plain old POST requests like always
    $.post('site.com/controller/method', { name : 'Jerel' });
});

Source

【讨论】:

  • 数据出错:{ csrf_test_name: $.cookie('csrf_cookie_name') } ??可能是我不太了解它。或者在配置文件中还有其他事情要做吗?
  • 需要安装jquery cookie插件:github.com/carhartl/jquery-cookie
  • 所有脚本都停止工作了。
  • 是的,因为jquery无法访问cookies,需要使用jquery cookie插件来访问cookies
  • 谢谢。我想应该这样做。
猜你喜欢
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
相关资源
最近更新 更多