TokaMismatchException ajax上的RANDOM请求Laravel

时间:2016-06-11 12:53:41

标签: php laravel session csrf

如何解释这个?

  1. 清理安装Laravel
  2. 使用redis进行会话和缓存
  3. 仅当我在Windows上启动服务器并且仅在Chrome上显示时才会出现问题。
  4. 使用简单的js函数进行ajax调用:

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        data: {
            _token: $('meta[name="csrf-token"]').attr('content')
        }
    });
    
    for(var i = 0; i < 5; i++){
    
        getUsers();
    }
    
    function getUsers() {
        $.ajax({
            url: '/users',
            type: 'POST',
            success: function(data) {
                console.log(data);
            }
        });
    }
    
  5. 在元<meta name="csrf-token" content="{{ csrf_token() }}" />

  6. 中设置CSRF
  7. 使用数据返回JSON:

    public function users(){

    $users = User::all();
    
    return response()->json([
        'users' => $users,
    ]);
    

    }

  8. 在视频的最后,您可以看到RANDOM TokenMismatchException,即使令牌永远不会改变,但有时会发生错误。

  9. https://www.youtube.com/watch?v=QDucHoP647g

    我知道这个问题已经讨论了多年,但为什么不存在解决方案?

    我也发布在laravel github上,但没有一个解决方案没有解决我的问题。

1 个答案:

答案 0 :(得分:0)

为什么要两次发送令牌?从$.ajaxSetup()

中删除该数据部分

为什么使用POST获取用户?改为使用GET。