Php 从子域向域发送POST请求时出现错误419
从admin.example.com向example.com发送请求后,我在响应中收到错误419,反之亦然 我在config/SESSION.php中将Php 从子域向域发送POST请求时出现错误419,php,laravel,routes,subdomain,csrf,Php,Laravel,Routes,Subdomain,Csrf,从admin.example.com向example.com发送请求后,我在响应中收到错误419,反之亦然 我在config/SESSION.php中将'domain'=>env('SESSION_domain',null),更改为'domain'=>'.example.com',,但这似乎没有改变任何东西 admin.example.com CSRF代码: 。 {!!csrf_field()!!} @包括(“导航”) . . . 我希望响应是与请求相关的JSON,但实际上我得到了一个Lara
'domain'=>env('SESSION_domain',null),
更改为'domain'=>'.example.com',
,但这似乎没有改变任何东西
admin.example.com CSRF代码:
。
{!!csrf_field()!!}
@包括(“导航”)
. . .
我希望响应是与请求相关的JSON,但实际上我得到了一个Laravel HTML响应,上面写着“页面已过期”。我生成的CSRF令牌显然有问题
请求:
问题在于您的CSRF令牌,如果您有表单发送请求,您可以包括
<form>
@csrf
</form>
更改为
'domain'=>'.example.com'
后是否清除了浏览器cookies?是的,更改后我清除了cookies。所有域都是cookies中的“.example.com”。您能否发送chrome开发工具中application
下cookies
选项卡的屏幕截图?以下是cookies:发现这不是因为CSRF令牌,而是因为当从子域发送请求时,无法从页面访问cookies。我该如何解决这个问题?我返回dd($\u COOKIE)
作为响应,它显示[]
。但CSRF令牌在请求中发送。我使用$('input[name=_token]').val()
将令牌添加到请求中。
$.ajax({
type: 'POST',
url: "{{ url('/yourURL') }}",
data: {
_token : '{{ csrf_token() }}',
formData : myArray,
},