2017-07-15 26 views
0

需要帮助,通过AJAX在CakePHP的3.4发送形式CRSF和安全组件启用

我希望能够通过AJAX发送形式到控制器进行处理,而CRSF和安全组件在应用程序启动控制器(cakephp 3.4)。将感谢我能得到的任何帮助。由于

+0

我认为这些成分只是创建隐藏字段。您是否尝试过在您的ajax请求中包含隐藏的字段?我不确定这会工作,但它值得尝试。 – systematical

+0

试试这个答案[如何使用AJAX和CakePHP 3检查CSRF令牌](https://stackoverflow.com/questions/33994845/how-to-check-csrf-token-using-ajax-and-cakephp-3-when用户未登录/ 35238944#35238944) CSRF令牌在名为csrfToken的cookie中可用,因此请在您的javascript中读取该令牌并为您的AJAX请求设置X-CSRF-Token标头。 CsrfCompoment将执行检查。 – eclaude

回答

0

为了送你需要按照文档(link

您需要创建或使用cookie阅读器的JavaScript(如指定通过HEAD请求先发CSRF令牌一个Ajax请求: js-cookie

这是一个jquery Ajax调用和js-cookie一个例子:

$.ajax({ 
    url: '<?php echo $this->Url->build(['controller' => 'Foo', 'action' => 'bar'])?>', 
    beforeSend: function(xhr){ 
     xhr.setRequestHeader('X-CSRF-Token', Cookies.get('csrfToken')); 
    } 
});