Utworzyłem kilka formularzy w wersji 5.1, teraz używam tych formularzy w innej witrynie przy użyciu ramki IFrame. Te formularze działają we wszystkich przeglądarkach oprócz Safari. Kiedy próbuję przesłać/opublikować dane po wypełnieniu formularzy, pojawia się błąd "Niezgodność tokenu CSRF", nie wiem, jaki jest tutaj problem, token csrf również jest tworzony i wysyłany. Dzieje się tak tylko w przypadku przeglądarki Safari.Laravel 5.1 - Problem niedopasowania tokena z ramkami iframe w przeglądarce Safari Tylko
Czy ktoś może mnie poprowadzić, w jaki sposób mogę się pozbyć tego problemu?
kroki do odtworzenia:
utworzyć formularz, a następnie użyć go poprzez iframe. po przesłaniu formularza generowany jest błąd niezgodności tokenów CSRF.
Jak rozwiązać ten problem? Proszę pomóż!
Przykładowy kod:
<form method="post" action="/step1/{{$voucher->user_id}}" accept-charset="UTF-8">
<input name="_method" type="hidden" value="post">
{!! csrf_field() !!}
<div class="row" style="margin-top:15px; margin-bottom:15px;">
<div class="col-md-4 col-xs-5 hidden">
<input name="voucher_id" type="hidden" value="{{$voucher->id}}" id="voucher_id">
<input class="form-control spin text-center qty1" name="qty" id="qty" type="text" value="1" >
<input name="r_full_name" type="hidden" value="" id="r_full_name">
</div>
<div class="col-md-3 col-xs-3">
<button type="submit" class="btn btn-theme"><i class="fa fa-shopping-cart" aria-hidden="true"></i> | BUY</button>
</div>
</form>
to przykładowy kod ... znowu to wszystko działa idealnie w każdej innej przeglądarki (FF, Chrome), ale kiedy mogę umieścić ten formularze do iframe w innym miejscu, a następnie uzyskać TokenMissmatch błąd ...
podać nam kod. –
Aktualizuję kod ... ale kod nie jest problemem (działa idealnie w FF i Chrome), kiedy umieszczam go w elemencie iframe w innej witrynie - wtedy przeglądarka Safari sprawia, że mam problem. –
Może uda Ci się odtworzyć token. Spróbuj przeładować klatkę na ładowanie okna nadrzędnego. –