首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >500内部误差-误差TokenMismatchException

500内部误差-误差TokenMismatchException
EN

Stack Overflow用户
提问于 2018-06-25 18:07:44
回答 1查看 53关注 0票数 0

我的Javascript按钮上的TokenMismatchException似乎有问题,它正在批准一个评论。我从一个类似的按钮系统复制代码,并修改它以符合这个系统的要求。我正在重用会话:令牌变量,不确定这是否是问题所在?

代码语言:javascript
复制
Error: TokenMismatchException in verifycsrftoken.php line 68

这是我的代码,对我为什么会出现错配错误有什么想法吗?

HTML:

代码语言:javascript
复制
@if(Auth::user())
       @if($approval)
         <a class="approval approved " data-id="{{$comments->id}}"><i class="fa fa-thumbs-up"></i></a>
        @else
        <a class="approval not-approved " data-id="{{$comments->id}}"><i class="fa fa-thumbs-up"></i></a>
        @endif

        @else
        <a class="not-approved" href="{{route('login')}}"><i class="fa fa-thumbs-up"></i></a>
        @endif

Javascript:

代码语言:javascript
复制
        var token = '{{ Session::token() }}';
        var urlApproval = '{{ route('approvals') }}';
        $('.approval').on('click', function(event){
            event.preventDefault();
            var buttonToChange = $(this);
            var $this = $(this);

            $.ajax({
                        method: 'POST',
                        url: urlApproval,
                        data: { comment_id: $(event.target).data("id")}, _token: token })

                    .done(function() {
                        if(buttonToChange.hasClass('approved')) {
                            buttonToChange.addClass('not-approved');
                            buttonToChange.removeClass('approved');
                        }else {
                            buttonToChange.addClass('approved');
                            buttonToChange.removeClass('not-approved');
                        }
                    });
        });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 21:12:40

当在laravel中使用ajax和POST方法时,您总是需要提供csrf令牌,所以您需要做的是:

在HTML中:

代码语言:javascript
复制
<meta name="csrf-token" content="{{ csrf_token() }}">

在调用Ajax之前:

代码语言:javascript
复制
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51029500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档