由于 Laravel 本身的 csrf 的保护机制,在 Laravel 项目中使用 ajax 的时候需要提供相对应的token,那么这个时候,基本推荐的解决方案是这样的:
1.在视图文件的 head 部分包含一个 meta,用来保存 token 的值:
<meta name="csrf_token" id="token" content="csrf_token()">
2.在使用 ajax 的时候就通过js获取到上面的 token 值,传给 Laravel 相对应的路由:
JQuery 的通常写法:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf_token"]').attr('content')
}
});
Vuejs 的通常会使用 Vue-resource,写法是这样:
Vue.http.headers.common['X-CSRF-TOKEN'] = document.querySelector('#token').getAttribute('content');
new Vue({
el: '#container'
});