【问题标题】:TokenMismatchException in VerifyCsrfToken.php while submiting through edittable通过可编辑提交时,VerifyCsrfToken.php 中的 TokenMismatchException
【发布时间】:2017-02-04 08:17:24
【问题描述】:

我用过可编辑的 jquery 插件:

<td>Name</td><td class="name" data-pk="<?php echo auth()->user()->id;?>" data-url="{{url('/edit/name')}}">{{auth()->user()->name}}</td>

还有$('.name').editable();

这条路线:Route::post('/edit/name', 'EditController@name');

还有控制器:

 public function name(Request $request)
    {
        $update=User::find()->where(['id'=>$request->pk])->first();
        $update->name=$request->value;
        $update->update();
    }

但是我得到了 TokenMismatchException 错误:如何在使用 jquery x-editable 插件时传递令牌?

【问题讨论】:

    标签: php jquery laravel datatables


    【解决方案1】:

    在 laravel 中,对于发布请求,您还必须传递 csrf 令牌值。它是 laravel 提供的一种安全机制。要消除此错误,请尝试以下操作:

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    

    把这个隐藏字段放在你的表单标签中,它的值也会在表单提交时发布。

    Reference

    对于 ajax:

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    

    【讨论】:

    • 但是,我没有表格。
    • 我不知道这是否使用 ajax。这是我用过的插件。 vitalets.github.io/x-editable
    • 这在 html 元标记中添加令牌后起作用。谢谢。
    • 听起来不错:)
    【解决方案2】:

    尝试在表单html代码中添加以下行

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    

    我希望它有效。

    【讨论】:

    • 但是,我没有表格。
    猜你喜欢
    • 2017-08-31
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2016-04-24
    • 2015-06-22
    相关资源
    最近更新 更多