首页 > 解决方案 > 使用 XAMPP 和 Laravel 时 iframe 拒绝连接

问题描述

我正在开发一个 Laravel 应用程序并添加了一个 iframe,如下所示:

iframe 没有连接,只是说www.google.com拒绝连接。我做了一些研究,这似乎与设置的 X-Frame-Options 有关。在 Chrome 浏览器开发者工具中,我看到以下错误消息:

与https://www.google.com/上的跨站点资源关联的 cookie设置为没有该SameSite属性。未来版本的 Chrome 将仅提供带有跨站点请求的 cookie,前提是它们使用SameSite=None和设置Secure。您可以在 Application>Storage>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592https://www.chromestatus.com/feature/5633521622188032查看更多详细信息。

我的猜测是这是一个需要在 Apache 内的 XAMPP 服务器级别更改的设置,但我不知道在哪里。有任何想法吗?

标签: laravelxampp

解决方案


如果您在 localhost 上进行测试并且无法控制响应标头,则可以使用 chrome 标志禁用它。

打开这个网址:

chrome://flags/#same-site-by-default-cookies

并禁用SameSite by default cookies

在此处输入图像描述

SameSite防止浏览器将 cookie 与跨站点请求一起发送。

如果您不想禁用SameSite by default cookies,可以在发回响应之前添加响应标头以解决此问题:

return response($content)
              ->header("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");

推荐阅读