2016-12-30 96 views
0

我是试图让CI中使用AJAX的数据,但是当我在那个时间获取数据发送请求给我的控制器我得到这个错误您刚才的请求不允许

您刚才的请求不允许。

这是我的Ajax代码

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

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

+0

有没有代码可以支持php/codeigniter标签 –

回答

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); 
+0

很酷。你怎么解决这个问题? –

+0

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

+0

如何使用ajax将csrf值发送到我的控制器 –