【问题标题】:Image Resource Loaded via JS Gets Automatically Upgraded to HTTPS通过 JS 加载的图像资源自动升级为 HTTPS
【发布时间】:2021-07-31 17:17:20
【问题描述】:

当使用以下代码通过 JS 从安全服务器加载图像时:

var preloadImage = new Image(); preloadImage.src = 'http://some/resource.png';

请求会自动升级到 https。据推测,阻止混合内容是一个善意的功能。但是我指向的服务器只能做http。我一直在浏览 Image 上可用的方法和属性,但无济于事。我的意思是理想情况下是的,图像应该是 https,但它只是一个在 AWS 上运行的临时服务器,所以如果我们现在可以避免它,那会容易得多。

有没有人有办法阻止JS自动升级请求?

【问题讨论】:

    标签: javascript https mixed-content


    【解决方案1】:

    它不是由JS代码触发的,而是由服务器检查客户端是否支持https并强制它。

    我的建议是有一个中间服务器/代理,它将使用 https 向远程服务器发出请求,并使用 http 与源服务器通信

    【讨论】:

    • “到服务器”是指提供图像的那个?因为那绝对不是强制https,它不能做https,这就是问题所在。当我转到网络日志时,它显示“请求 URL:https://blahblahblah/image.jpg”。所以据我所知,是浏览器改变了请求。
    【解决方案2】:

    事实证明,大多数浏览器的最新更新已完全停止混合内容。在它曾经发出警告之前,现在它是不可能的。我们通过一些 nginx 反向代理魔术解决了这个问题,我们在 URL 中传递了 IP,例如 https://normal-domain/preview/IPADDESSS,它现在可以工作了。

    【讨论】:

      猜你喜欢
      • 2012-09-26
      • 2014-09-06
      • 1970-01-01
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      相关资源
      最近更新 更多