【发布时间】:2017-08-21 06:11:48
【问题描述】:
我在 laravel 5.1 中创建了几个表单,现在我在另一个使用 IFrame 的站点上使用这些表单。这些表单适用于除 Safari 之外的所有浏览器。当我在填写表格后尝试提交/发布数据时,我收到错误“CSRF 令牌不匹配”,我不知道这里有什么问题,csrf 令牌也在创建和发送。这只发生在 safari 浏览器的情况下。
有人可以指导我如何摆脱这个问题吗?
复制步骤:
创建一个表单,然后通过 IFrame 使用它。提交表单后,会产生 CSRF Token Mismatch 错误。
如何解决这个问题?请帮忙!
代码示例:
<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>
这是示例代码...再次,所有这些在任何其他浏览器(FF,Chrome)中都可以完美运行,但是当我将此表单放入另一个站点的 iframe 时,我会收到 TokenMissmatch 错误...
【问题讨论】:
-
提供一些代码。
-
我用代码更新...但代码不是问题(在 FF 和 Chrome 中完美运行)只是当我将它放入另一个网站的 iframe 时 - 然后 Safari 浏览器让我成为问题。跨度>
-
也许你可以重新生成令牌。尝试在父窗口加载时重新加载框架
-
顺便问一下,为什么用 [javascript] 标记?
-
您使用的是哪个操作系统?
标签: javascript php laravel iframe safari