csrf也就是laravel默认在表单提交中都会验证csrf字串,没有的话就不会予以通过。
当然,你在普通的表单中加一个@csrf
,系统就会自动增加一个hidden隐藏域。
或者你用laravel自带的axios,laravel也做过处理:
resources/js/bootstrap.js
那么如果我使用jquery封装的ajax,如何处理呢?
很简单,要么想上图那样,加一个headers就行:
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
}
});
但是,就要求在meta中有一个_token
的值,也即需要:
<meta name="_token" content="{{ csrf_token() }}"/>
那么,也就可以请求ajax了。
那,还有没有再简单一丢丢的方法?有。
$.ajax({
headers: {
'X-XSRF-TOKEN': $.cookie('XSRF-TOKEN')
}
});
Laravel默认也会在Cookies中增加一个名为XSRF-TOKEN
的Cookie,我们直接获取他的值就行啦。