【问题标题】:enforce http with JavaScript使用 JavaScript 强制执行 http
【发布时间】:2011-09-12 12:01:34
【问题描述】:

我有一个 srcURL 变量,它获取 /myFolder/myFile.jpg 形式的路径

现在这被分配给 img 元素..这显然会用完整路径 https://mySite.com/myFolder/myFile.jpg 调用它

现在我以某种方式希望使用 Javascript 将 https 替换/强制为 http..

我不确定是否可以使用“replace()”方法执行此操作,因为我只在 srcURL 变量中获取路径“/myFolder/myFile.jpg”,而不是使用 https..

我该怎么做?

【问题讨论】:

  • 嗯..我不是 1005 确定...但是有一个函数 function AudioData(section, url) { this.section = section;这个.url = url; }
  • 不混合httpshttp 元素会导致IE 中出现“不安全元素”错误?
  • @Grzegorz:这不是错误,而是警告,我认为用户可以在高级设置中关闭它,但默认情况下它是打开的。

标签: javascript html css http https


【解决方案1】:

您正在使用相对路径。设置 URL 的 src 时需要使用显式路径。

srcURL = '/myFolder/myFile.jpg';
srcURL = 'http://' + window.location.host + srcURL;

// srcURL == 'http://<yourdomainname>/myFolder/myFile.jpg'

注意:您可能会收到一条警告消息,说明您的网页的某些部分可能不安全。

【讨论】:

  • 您好..您似乎已经一针见血了..效果很好..我唯一的问题是这是否确实是一个好习惯..就我而言,我无法访问通过 https 获取资源 ..so 如果这不是一个好的做法或存在一些风险,我可以考虑差异线..
  • 我相信这取决于图像的内容是什么。 HTTPS 所做的只是在 HTTP 上添加 SSL 加密层,这并不是那么安全。基本上,这就像把你放在办公桌上的贷款申请表拿走,其中暴露了你的社会安全号码和私人信息,然后把它放在一个信封里,以便那些可能路过的人看到它,不会。这并不能阻止那些想看它的人,因为他们所要做的就是打开信封。但是,图像是经过压缩的,因此它们是经过加密的,不需要额外的基本 SSL 层。
  • 回答您的问题,这是一种很好的做法,并且一直在发生。大多数情况下,您看到那些声明“此页面上的信息可能不安全”的消息是由于图像造成的。
【解决方案2】:

如果您想强制执行纯 HTTP,您应该在服务器上编写一个重写规则,以将任何对图像的 HTTPS 请求转发到等效的 HTTP。在客户端,只需这样做就足够了(但您也确实需要后端部分):

url.replace("https", "http");

【讨论】:

  • 他不能在客户端做到这一点:“我不确定我是否可以用“replace()”方法做到这一点,因为我只得到了路径“/myFolder/myFile.jpg " 在 srcURL 变量中,而不是 https"
  • 嗨,迈克...我实际上希望这仅在 1 页上的 1 个地方(即特定图像)发生...所以服务器设置不会产生全球影响...我不想..
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 2010-12-23
  • 1970-01-01
  • 2021-03-29
  • 1970-01-01
相关资源
最近更新 更多