Выровнять HTTP / HTTPS с протоколом веб-страницы? - PullRequest
1 голос
/ 28 апреля 2011

У нас много кода ASP.NET с URL-адресами клиентов, ссылающимися на внешние скрипты и ресурсы, как показано.Очевидно, что это приложение для Facebook, но оно не имеет отношения к более общему вопросу:

Каков разумный способ переключения всех протоколов сценариев и протоколов связи между 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>
<% } %>

[snip]

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

[snip]

    <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">

[etc...]

Ответы [ 3 ]

2 голосов
/ 28 апреля 2011

просто замените "http://" на" // " должно быть хорошо

0 голосов
/ 28 апреля 2011

Мне нравится подход Google к своим библиотекам, например, Google Analytics:

    (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);
        })();

Все проверки выполняются на стороне клиента.И это работает, если ваши сторонние скрипты не размещаются по одному и тому же URL-адресу в SSL и не-SSL.

0 голосов
/ 28 апреля 2011

Просто запустите ссылки без указанного протокола - протокол будет унаследован от страницы.

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

Это распространенный метод на страницах, которые должны обслуживаться как http, так и * 1005.*.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...