谷歌浏览器拒绝显示谷歌地图框架,因为 X-Frame-Options 设置为拒绝

Posted

技术标签:

【中文标题】谷歌浏览器拒绝显示谷歌地图框架,因为 X-Frame-Options 设置为拒绝【英文标题】:Google Chrome refused to display GoogleMaps Frame because X-Frame-Options is set to deny 【发布时间】:2013-12-20 11:46:18 【问题描述】:

我正在开发一家商店的网站,我正在使用 GooleMaps Engine Lite 来显示他的位置。它适用于 IE9 和 10,适用于 Windows、ios 和 MacOs 的 Safari 以及 Mozilla Firefox,但不适用于 Chrome。如果我使用 javascript 控制台,我会看到以下错误:

Refused to display 'https://accounts.google.com/ServiceLogin?service=mapsengine&passive=1209600…up=https://mapsengine.google.com/map/embed?mid%3DzehbkDaSW5QM.kyKZHGifzxMc' in a frame because it set 'X-Frame-Options' to 'DENY'.

有人可以帮帮我吗?

【问题讨论】:

Overcoming “Display forbidden by X-Frame-Options” 【参考方案1】:

我第一次遇到这个问题,重启电脑后就消失了,但是今天又出现了。我在 Google 论坛上读到,当您使用 Google 帐户半登录时,就会发生冲突。如果我完全注销我的帐户或登录地图重新开始工作。在 Safari 中你会发现同样的问题。

临时解决方案是将地图 iframe 沙箱化以禁止其访问 cookie。

【讨论】:

我知道这是一篇较旧的帖子,但您的答案是唯一接近真正问题的答案。您能否详细说明或提供一个链接来说明您如何“对地图 iframe 进行沙箱化以禁止其访问 cookie”?【参考方案2】:

https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options

X-Frame-Options HTTP 响应标头可用于指示是否应允许浏览器以<frame><iframe> 呈现页面。网站可以使用它来避免点击劫持攻击,确保其内容不会嵌入到其他网站中。

我要向你提出的反问是,当它明确告诉浏览器它不想在 iframe 中加载时,你为什么要在 iframe 中实现该 URL?

您在嵌入地图时是否按照https://support.google.com/mapsenginelite/answer/3024935?hl=en 的说明进行操作?

确保您已打开所需的地图,并且已将其设置为可供公众访问。 点击文件夹按钮。 选择嵌入我的网站。 在出现的框中,复制“嵌入网络”下的 html,并将其粘贴到您的网站或博客的源代码中。

【讨论】:

【参考方案3】:

您正在链接到地图生成器的 Google 帐户登录页面,而不是地图。该链接可能不是您想要的。

要从 Google Maps Engine 制作可嵌入地图,

    点击右上角绿色的“分享”按钮,将您的地图设为公开 单击左上角的文件夹图标(“添加图层”旁边)并选择“嵌入我的网站”

【讨论】:

google 在后台重定向到该登录地址,我做了您在回答中描述的操作,但仍然遇到与 OP 相同的错误【参考方案4】:

1) 左下角点击6齿轮,“地图分享与整合” 2)在打开的对话框中按“集成地图” 3)你有正确的 iframe 行 src 。

【讨论】:

以上是关于谷歌浏览器拒绝显示谷歌地图框架,因为 X-Frame-Options 设置为拒绝的主要内容,如果未能解决你的问题,请参考以下文章

谷歌浏览器控制台错误

谷歌地图请求被拒绝问题

为啥手机上不能用谷歌地图

如何让谷歌地图再次请求位置权限?

谷歌地图显示错误 Api 项目未授权

谷歌地图嵌入搜索不显示结果?