不允许您请求的操作

时间:2016-12-30 12:30:27

标签: javascript php ajax codeigniter

我尝试在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代码

1 个答案:

答案 0 :(得分:0)

错误是由您当前提交的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。

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

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