【问题标题】:The action you have requested is not allowed [duplicate]您请求的操作是不允许的[重复]
【发布时间】:2017-05-14 18:12:08
【问题描述】:

我尝试在 codeigniter 中使用 ajax 获取数据,但是当我当时向我的控制器发送获取数据的请求时出现此错误

您请求的操作不被允许。

这是我的ajax代码

$.ajax({
     type:'POST',
    dataType: 'json',
    url: "redeem_drink/testjs",
    success: function(data){
        console.log(data);          
    },
    error: function(data){
        console.log(data);
    }
});

请帮助我如何设置 ajax 代码以获取和发布数据

【问题讨论】:

  • 没有代码支持 php/codeigniter 标签

标签: javascript php ajax codeigniter


【解决方案1】:

错误是由于您当前提交的 CSRF 值造成的。除非通过获取新的 CSRF 值作为最后一次提交表单的响应来更新值,否则只能使用它提交一次表单。

确保更新 CSRF 值或重新加载将自动刷新 CSRF 值的页面。

在您的 php 代码中使用该代码创建一个新的 CSRF 值。

$csrf = array(
        'name' => $this->security->get_csrf_token_name(),
        'hash' => $this->security->get_csrf_hash()
);

return $this->output
            ->set_content_type('application/json')
            ->set_status_header(200)
            ->set_output(json_encode($csrf));

并发送 $csrf 数据作为最后一次 ajax 提交表单的响应。

现在使用 javascript 更新所有表单的 CSRF。

你可以这样做,在success函数里面。

$('form').find('input[name='+data.name+']').val(data.hash);

【讨论】:

  • 酷。你如何解决这个问题?
  • 确保更新 CSRF 值或重新加载将自动刷新 CSRF 值的页面。
  • 如何使用 ajax 将 csrf 值发送到我的控制器
  • 检查更新的答案
猜你喜欢
  • 2017-03-21
  • 2012-05-10
  • 2016-04-03
  • 2023-03-10
  • 2014-02-08
  • 2016-07-25
  • 2019-09-13
  • 2018-01-24
  • 2018-03-16
相关资源
最近更新 更多