Ajax 令牌失配异常拉维5&;BackboneJs
我正在开发一个Laravel 5-BackboneJs应用程序。我正在使用RESTful资源控制器来创建自己的api 我有一个主干模型,然后我调用save model方法。它发出如下ajax请求:Ajax 令牌失配异常拉维5&;BackboneJs,ajax,laravel,backbone.js,laravel-5,laravel-routing,Ajax,Laravel,Backbone.js,Laravel 5,Laravel Routing,我正在开发一个Laravel 5-BackboneJs应用程序。我正在使用RESTful资源控制器来创建自己的api 我有一个主干模型,然后我调用save model方法。它发出如下ajax请求: gerencia.app/es/customrole/1 这就是为什么我尝试更新id为1的模型 主干使用PUT方法创建请求: 但它给了我500个内部服务器错误!然后我看到预览: 这是一个来自Laravel的令牌不匹配异常,然后我发现我必须发送一个令牌,所以我在我的刀片视图中这样做: <me
gerencia.app/es/customrole/1
这就是为什么我尝试更新id为1的模型
主干使用PUT方法创建请求:
但它给了我500个内部服务器错误!然后我看到预览:
这是一个来自Laravel的令牌不匹配异常,然后我发现我必须发送一个令牌,所以我在我的刀片视图中这样做:
<meta name="token" content="{{ Session::token() }}">
尽管我在请求头中看到了令牌,但它仍然无法工作:(
有什么帮助吗?我的解决方案是在我的模型方法中添加一个名为token的新键/值:
model.save({
"_token" : $("meta[name='token']").attr('content'),
success: function(){
console.log( 'success!' );
},
error: function(){
console.log( 'error!' );
}
});
您可以发布此问题的另一个解决方案。我可以按照Laravel网站上的说明进行操作。我已将此添加到我的全局布局文件中:
<meta name="csrf-token" content="{{ csrf_token() }}" />
这样做之后,来自主干网的POST请求正常工作,我可以在请求中看到额外的头。对我来说,关键是在主干网之后包含csrf token.js
文件:
<script src="{{ asset('js/lib/backbone-min.js') }}"></script>
<script src="{{ asset('js/csrf-token.js') }}"></script>
我猜主干在加载时会覆盖ajax设置选项,因此您需要在加载后包含更改
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
<script src="{{ asset('js/lib/backbone-min.js') }}"></script>
<script src="{{ asset('js/csrf-token.js') }}"></script>