Php 在laravel 5中发送ajax请求

Php 在laravel 5中发送ajax请求,php,jquery,ajax,laravel-5,Php,Jquery,Ajax,Laravel 5,路线: url = '{{route("ajaxSendmsg")}}'; console.log(url); $.ajax({ url: url, data : {comment_id:comment_id}, type: "POST", dataType: "json", success

路线:

url = '{{route("ajaxSendmsg")}}';
            console.log(url);
            $.ajax({
                url: url,
                data : {comment_id:comment_id},
                type: "POST",
                dataType: "json",
                success : function(response){
                    alert(response);
                },
                error : function(res){
console.log(res);
                }

            });
控制器:

Route::post('/ajaxSend', ['as'=> 'ajaxSendmsg', 'uses'=>'PostsController@ajaxSend']);
错误:VerifyCsrfToken.php第53行中的TokenMismatchException:


我正在尝试发送ajax请求,但不起作用:/

默认情况下,Laravel在非读取HTTP请求(如POST、PUT或PATCH)上有一个中间件来保护其免受攻击。在每个响应上,都会生成一个令牌,然后后续的请求将随该令牌一起发送。如果令牌匹配,则一切正常,如果不匹配(或者如果请求根本不提供令牌),则可能是CSRF攻击

有几种方法可以做到这一点:

  • 通过在
    app/Http/Kernel.php
    中注释完全禁用中间件-显然不是最好的主意
  • 通过使用您自己的中间件覆盖默认中间件,仅在您确定不需要它的路由中禁用它:
  • ``


    默认情况下,Laravel在非读取HTTP请求(如POST、PUT或PATCH)上有一个中间件来保护其免受攻击。在每个响应上,都会生成一个令牌,然后后续的请求将随该令牌一起发送。如果令牌匹配,则一切正常,如果不匹配(或者如果请求根本不提供令牌),则可能是CSRF攻击

    有几种方法可以做到这一点:

  • 通过在
    app/Http/Kernel.php
    中注释完全禁用中间件-显然不是最好的主意
  • 通过使用您自己的中间件覆盖默认中间件,仅在您确定不需要它的路由中禁用它:
  • ``


    用于在laravel5中使用ajax请求和响应。您应该发送这样的令牌。 ::

    ajax文件::

    .ajax({
       url: url,
       data : {comment_id:comment_id, "_token":"{{ csrf_token() }}"},
       type: "POST",
       dataType: "json",
       ....
    });
    

    祝你好运:♥♥:

    用于在laravel5中使用ajax请求和响应。您应该发送这样的令牌。 ::

    ajax文件::

    .ajax({
       url: url,
       data : {comment_id:comment_id, "_token":"{{ csrf_token() }}"},
       type: "POST",
       dataType: "json",
       ....
    });
    

    祝你好运:♥♥:

    您要么必须禁用路由的CSRF令牌中间件,要么随每个请求一起发送。有一个helper函数
    csrf\u token()
    ,用于获取当前令牌。中间件将在查询或post字符串或“X-CSRF-token”HTTP头中查找名为“_token”的字段@Quasdunk现在可以用了,非常感谢!:)您要么必须禁用路由的CSRF令牌中间件,要么随每个请求一起发送。有一个helper函数
    csrf\u token()
    ,用于获取当前令牌。中间件将在查询或post字符串或“X-CSRF-token”HTTP头中查找名为“_token”的字段@Quasdunk现在可以用了,非常感谢!:)无法使用ajax在验证后错误上重新提交具有相同令牌的表单。无法使用ajax在验证后错误上重新提交具有相同令牌的表单。
    .ajax({
       url: url,
       data : {comment_id:comment_id, "_token":"{{ csrf_token() }}"},
       type: "POST",
       dataType: "json",
       ....
    });
    
            <input type="hidden" value="{{ csrf_token() }}" id="_token" name="_token" />
    
     $.ajax({
                type: 'POST',
                url:'{{url("set-visitor")}}' ,
                data: {id: '2',  _token: $('#_token').val()},
                dataType: 'html',
                success: function(data){
                    var rep = JSON.parse(data);
                    console.log(data);
                    if(rep.code == 200)
                    {
                        console.log(rep);
                    }
                    else{
                        console.log('error');
                    }
                }
            });
    
     public function set_visitor()
    {
        $id = request('id');
        $_token = request('_token');
        return Response::json($_token);
    
    }