2011-04-28 142 views
1

如圖所示,我們有很多帶有客戶端URL的引用外部腳本和資源的ASP.NET代碼。顯然,這是一個Facebook應用程序,但是這並不是真正相關的更普遍的問題:將HTTP/HTTPS與網頁協議對齊?

什麼是聰明的方式來切換HTTP和HTTPS之間的所有腳本和鏈路協議與由頁面的用戶選擇的協議一致?

的用戶可在不安全模式,

http://apps.facebook.com/app1

或在安全模式下衝浪

HTTPS://apps.facebook.com/app1


的頁面內容樣品:

<script type='text/javascript' src="http://cdn.jquerytools.org/1.2.5/all/jquery.tools.min.js"> 
    </script> 

<% if (IsFrench) { %> 
     <script src="http://connect.facebook.net/fr_CA/all.js"></script> 
<% } else { %> 
     <script src="http://connect.facebook.net/en_US/all.js"></script> 
<% } %> 

[剪斷]

<a href="http://www.microsoft.com/about.aspx">Microsoft About Page</a> 
<a href="http://www.example.com/">Example Page</a> 

[剪斷]

<script type="text/javascript" language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" 
     type="text/javascript"> 
    </script> 

    <script type='text/javascript' src="http://cdn.jquerytools.org/1.2.5/all/jquery.tools.min.js"> 

[等等]

回答

2

只需更換的 「http://」 以 「//」 應該罰款

+0

你是第一個平局。謝謝。這些年來,我沒有意識到存在簡單的機制。 – 2011-04-28 19:37:47

+0

有沒有人知道使用無協議URL的瀏覽器兼容性問題,還是相當安全? – 2011-04-28 19:49:57

+0

兼容性和RFC信息在這裏回答:http://stackoverflow.com/questions/550038/is-it-valid-to-replace-http-with-in-a-script-src-http/550073#550073 – 2011-04-28 20:06:12

0

只需啓動沒有指定協議的鏈接 - 協議將從頁面繼承。

<script type='text/javascript' src="//cdn.jquerytools.org/1.2.5/all/jquery.tools.min.js"> 

這是需要雙方httphttps送達頁面的常用技術。

+0

整潔,這是非常乾淨的 – 2011-04-28 19:33:11

0

我想,谷歌需要與它的庫,如谷歌分析的方法:

(function() { 
      var ga = document.createElement('script'); 
ga.type = 'text/javascript'; 
ga.async = true; 
      ga.src = ('https:' == document.location.protocol ? 
       'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 

      var s = document.getElementsByTagName('script')[0]; 
      s.parentNode.insertBefore(ga, s); 
     })(); 

的檢查都是在客戶端完成。如果您的第三方腳本在SSL和非SSL之間沒有在相同的URL上託管,則它可以工作。

+0

看起來谷歌在這方面的代碼,因爲它們隨着協議而變化的子域名。我可以在不改變我的場景中的域名的情況下離開,因此可能不會使用此域名,但是我對使用Google足夠好的內容沒有任何問題。謝謝。 – 2011-04-28 19:40:22