Laravel5跨AJAX请求重新生成CSRF令牌。Can';t阿贾克斯

Laravel5跨AJAX请求重新生成CSRF令牌。Can';t阿贾克斯,ajax,angularjs,session,laravel,csrf,Ajax,Angularjs,Session,Laravel,Csrf,我正在开发一个使用Laravel5构建的API,以及一个使用Angular JS构建的客户端。两者完全分离和独立 要将AJAX引入API中,我的客户端在给定端点(/token)成功请求使用Laravel的csrf_token()生成的令牌,然后将其存储在其$rootScope中,以便以后在每个POST或PUT请求中用作\u令牌字段 但是当发送AJAXPUT或POST请求时,我会抛出一个令牌不匹配异常 我在输出中打印匹配的令牌,它在每个AJAX请求中都是不同的,但是通过浏览器加载/token(常规

我正在开发一个使用Laravel5构建的API,以及一个使用Angular JS构建的客户端。两者完全分离和独立

要将AJAX引入API中,我的客户端在给定端点(
/token
)成功请求使用Laravel的
csrf_token()生成的令牌,然后将其存储在其
$rootScope
中,以便以后在每个POSTPUT请求中用作\u令牌字段

但是当发送AJAXPUTPOST请求时,我会抛出一个令牌不匹配异常

我在输出中打印匹配的令牌,它在每个AJAX请求中都是不同的,但是通过浏览器加载
/token
(常规HTTP请求),每次都输出相同的令牌

你知道这是怎么回事吗


我不知道这是否是出于设计,我的应用程序逻辑是否有缺陷,或者还有其他故障。

您需要将令牌添加到标题中,并将其包含在ajax调用中。使用

<meta name="csrf-token" content="{{ csrf_token() }}" />

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

$.ajaxSetup({
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
}
});
在医院的文件里

header和post方法都应该有效,但没有一个有效。我两个都试过了。令牌正在传递给API,它只是不匹配。