在Laravel框架中为了防止csrf攻击,规定只要是post操作都要传递_token值,如果是普通表单那么只要在form中添加@csrf代码就可以了,如果采用ajax方式提交post请求时,最简单的解决办法是在每次ajax post提交的参数中追加一个_token字段,但是每次都手动去追加这条数据即麻烦又不美观。
很多文章为了简单会推荐直接关闭Laravel的强制csrf校验或者通过设置appHttpMiddlewareVerifyCsrfToken.php文件中的$except来屏蔽对指定路由的csrf校验,而这样做却又降低了程序的安全性,那么有没有更好的解决办法呢?
Laravel中ajax post操作需要传递csrf token的最优化解决方式如下:
1.在blade页面中的header标签中添加如下代码:
<meta name="csrf-token" content="{{ csrf_token() }}" />
2.在blade页面中引用jquery并添加如下js代码:
<script>
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
</script>
这样在本页面中的所有ajax post操作都会自动使用token字段,而不需要手动填写了。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel中ajax post操作需要传递csrf token的最优化解决方式
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel中ajax post操作需要传递csrf token的最优化解决方式