【问题标题】:Strange Mixed Content Issue奇怪的混合内容问题
【发布时间】:2017-09-27 12:44:02
【问题描述】:

我在 Chrome 开发者工具中遇到这个错误已经有一段时间了,我似乎无法找到不安全的 http:// 请求。它指向我的域,但没有 https://。 http://www.example.com/ 不是脚本,所以我不明白它的来源。

混合内容:位于“https://www.example.com/categoy/a-product.html”的页面 已通过 HTTPS 加载,但请求了不安全的脚本“http://www.example.com/”。此请求已被阻止; 内容必须通过 HTTPS 提供。

混合内容:位于“https://www.example.com/categoy/a-product.html”的页面 已通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“http://www.example.com/”。 此请求已被阻止;内容必须通过 HTTPS 提供。

谢谢

【问题讨论】:

    标签: security xmlhttprequest mixed-content


    【解决方案1】:

    我遇到了类似的问题。您托管的页面是否是具有 HTML5/history/push-state 路由的单页应用程序?

    这种类型的路由有很多名称,但它的作用是将基于哈希的 URL https://address.com/page/#client/side/route 替换为常规路由,例如 https://address.com/page/client/side/route。当文件由静态文件服务器托管时,文件服务器可能不知道客户端路由并返回 404 而不是将所有内容路由到index.html。显然,这可能会导致您在 Chrome 中描述的问题,即使该页面看起来可以正常工作。

    简而言之,许多静态文件托管工具不适合为带有 HTML5 路由的 SPA 提供服务,尤其是 http-server (https://github.com/indexzero/http-server/issues/80)。尝试不同的工具(例如serve)或使用带有try_files $uri $uri/ index.html的nginx。

    【讨论】:

      【解决方案2】:

      这意味着您的网页正在通过 https 访问,但它使用通过 http 提供的资源。像 Chrome 这样的现代浏览器认为这是一种安全风险。浏览器不加载 http 资源并在开发者控制台中显示警告。

      解决方案是将所有通过 http 访问的资源的协议方法从 http 更改为 https。

      查看此链接:https://developers.google.com/web/fundamentals/security/prevent-mixed-content/fixing-mixed-content#alternatives_to_csp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-23
        • 2015-10-31
        • 2016-09-04
        • 2015-08-13
        • 1970-01-01
        • 1970-01-01
        • 2011-06-19
        相关资源
        最近更新 更多