Ajax 令牌失配异常拉维5&;BackboneJs

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

我正在开发一个Laravel 5-BackboneJs应用程序。我正在使用RESTful资源控制器来创建自己的api

我有一个主干模型,然后我调用save model方法。它发出如下ajax请求:

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>