【问题标题】:Google Maps not working in Firefox and Safari谷歌地图无法在 Firefox 和 Safari 中运行
【发布时间】:2019-03-11 05:01:55
【问题描述】:

我在一个 Wordpress 网站上遇到问题,其中 Google 地图无法在 Firefox 和 Safari 上专门加载。地图显示空白,并显示一条消息正在加载地图...在这两个浏览器上永远不会结束。

这条奇怪的黄色消息显示在 Google Chrome 的浏览器上:

jquery.min.js?ver=1.11.1:4 Cross-Origin Read Blocking (CORB) blocked cross-origin response https://github.com/googlemaps/js-map-label/blob/gh-pages/src/maplabel.js?_=XXXXXXXXXX with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.

在 Firefox 中,它还会以黄色警报的形式显示以下消息:

Loading failed for the <script> with source “https://github.com/googlemaps/js-map-label/blob/gh-pages/src/maplabel.js?_=XXXXXXXXX”.

关于它只适用于 Chrome 而不适用于 Firefox 和 Safari 的任何线索?有什么办法解决吗?

谢谢

【问题讨论】:

    标签: wordpress google-maps firefox safari


    【解决方案1】:

    由于错误,您的CSP (Content Security Policy) 不允许您从 github.com 域加载脚本。

    你可以:

    • 编辑您的content-security-policy 标头以允许https://github.com 加载。您可以通过 Apache/Nginx 设置或 PHP(如果您使用它)来执行此操作,但我更喜欢从 Web 服务器配置中处理这些标头。
      • CSP 也可以使用header meta tag 进行管理
      • 由于您直接从 Github 提供服务,您可能需要更改 default-src,因为内容类型为 text/html。我不知道script-src 是否会处理它。
    • 下载脚本并将其上传到您的服务器。像这样,它将从同一个域加载,并且不应该抛出 CSP 错误。

    还有:

    • 直接使用来自 GitHub 的文件并不是最好的主意。如您所见 here 和控制台错误 with MIME type text/html,Github 将您的 JS 文件作为 text/html 而不是 application/javascript
    • 最好使用适当的 CDN(如果存在为您的文件提供服务的 CDN),或者将文件存储在您的服务器上。

    【讨论】:

    • 我可以通过 .htaccess 单独添加到这个网站吗?如果是这样,该脚本的外观如何?
    • 其实它只适用于Chrome,不适用于其他浏览器
    • 你可以试试&lt;IfModule mod_headers.c&gt; Header set Content-Security-Policy "default-src 'self' https://github.com" &lt;/IfModule&gt;。如果您的内容类型正确,请使用 script-src
    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 2014-07-26
    • 1970-01-01
    • 2014-05-16
    • 2014-02-22
    • 2021-11-30
    • 2012-12-10
    • 2016-07-01
    相关资源
    最近更新 更多