我是laravel的新手 . 我在localhost上使用laravel 5.3,我使用ajax post请求将数据发布到控制器函数 . 我已经在主模板的head部分中集成了这样的CSRF令牌
<meta name="csrf-token" content="{{ csrf_token() }}">
后面包括jquery我添加这个脚本
<script type="text/javascript">
$( document ).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
console.log($('meta[name="csrf-token"]').attr('content'));
});
</script>
我按这样的按钮点击发送数据
$.ajax({
type: "POST",
url: './add_to_cart',
data: {id:prod_id,name: name,price:price},
success: function( msg ) {
}
});
第一次通话是正确的,没有错误 . 但是在第一次调用后每次调用返回错误
VerifyCsrfToken.php第67行中的TokenMismatchException:
这是错误截图:
3 回答
使用不包含的 Headers 调用ajax函数 . 我相信你的meta标签是这样的
像这样
所以每次完成ajax调用时,Header都会包含
csrf_token()
.我想你应该试试这个:
希望这对你有用!
仔细检查我的代码后 . 我发现这段代码正在执行此操作 . 会话::冲洗();删除此问题后解决了 . 非常感谢@Naveen Kumar的努力