2011-06-10 60 views
0

我有一个srcURL变量,获取形式/myFolder/myFile.jpg执行HTTP使用JavaScript

现在这个被分配到IMG element..which显然将与完整路径把它的路径https://mySite.com/myFolder/myFile.jpg

现在我不知想了HTTPS被替换/与使用Javascript HTTP执行..

我不知道我是否可以用“替换()”方法做到这一点,因为我只得到了路径“/ MyFolder文件/myFile.jpg“在srcURL变量中,而不是https ..

我该怎么做?

+0

它从哪里来的? – 2011-06-10 13:07:32

+0

嗯..我不是1005肯定的...但是有一个函数函数AudioData(section,url) \t this.section = section; \t this.url = url; } – testndtv 2011-06-10 13:12:06

+1

在IE中不混合“https”和“http”元素会导致“不安全元素”错误? – 2011-06-10 13:19:20

回答

3

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

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

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

注:你可能会得到一个警告消息说你的页面的某些部分可能是不安全的。

+0

你好...你似乎已经击中了头部..完美..我唯一的问题是,如果这确实是一个很好的做法..在我的情况下,我无法通过https..so访问资源如果这不是一个好的做法或存在一定的风险,我可以考虑沿着差异线。 – testndtv 2011-06-10 16:56:03

+0

我相信这取决于图像的内容是什么。所有的HTTPS都是通过HTTP添加一个SSL加密层,这并不是那么安全。基本上,就像把你的贷款申请书放在你的桌子上,将你的社会安全号和私人信息暴露出来,然后放在一个信封里,以便那些在他们经过时可能看到的人不会。这并不能阻止那些想看到它的人,因为他们所要做的就是打开信封。不过,图像是压缩的,所以它们被加密并且不需要额外的基本SSL层。 – vol7ron 2011-06-10 22:23:06

+0

要回答你的问题,这是一个好的做法,并始终发生​​。大多数情况下,您看到那些表示“此页面上的信息可能不安全”的消息是由于这些图像。 – vol7ron 2011-06-10 22:25:37

1

如果您希望实施普通HTTP,则应在服务器上编写重写规则,以将任何图像的HTTPS请求转发到HTTP等效项。在客户端,简单地做这件事就足够了(但你真的需要后端件):

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

他不能在客户端做到这一点:“我不确定是否可以使用”replace()“方法来执行此操作,因为我只在srcURL变量中获取路径”/myFolder/myFile.jpg“,而不是与https“ – 2011-06-10 13:15:16

+0

嗨迈克......我其实只想在一个地方(即特定图像)发生只有1页...所以服务器设置不会造成全球影响..我不想要的东西。 – testndtv 2011-06-10 13:19:16