Подтвердить что ты не робот

Простой код jQuery работает нормально, пока сайт не загружается через https://

У меня есть простой фрагмент кода jQuery, который представляет форму и скрывает/показывает некоторые данные на экране. Он отлично работает при тестировании, пока не будет загружен через https://, после чего он разрывается в IE7. Он, похоже, полностью разрушается, и ни один из script не имеет никакого эффекта. Я также получаю предупреждение IE о том, что "некоторые элементы небезопасны".

Есть ли у кого-нибудь опыт этого? Или даже лучше, решение! Мне нужно загрузить страницу через https в качестве страницы оплаты кредитной карты.

4b9b3361

Ответ 1

В трех предыдущих ответах упоминается проблема защищенной "https" страницы, которая пытается включить скрипты или другие ресурсы (таблицы стилей, изображений и т.д.) из пути "http"...

Я хотел бы добавить к ним и отметить, что если у вас есть ситуация, когда одни и те же страницы могут быть загружены через http или https, тогда вы можете создавать URL-адреса без протокола - предполагается, что протокол как и текущая страница. Обратите внимание, что это необходимо только для доступа к ресурсам в разных доменах (и будет работать только в том случае, если эти разные домены поддерживают как http, так и https), потому что, очевидно, если вы обращаетесь к ресурсам в том же домене, вам не нужно начинать с http://вообще...

Например, каждый из этих трех ресурсов будет использовать либо http, либо https в зависимости от того, как была обращена текущая страница:

<script src="//www.example.com/whatever.js" type="text/javascript"></script>
<img src="//www.example.com/someimage.png" alt="whatever" />
<link href="//www.example.com/styles.css" rel="stylesheet" />

Ответ 2

Если вы обслуживаете страницу через https://, то каждая ссылка ресурса также должна использовать https://. Следите за

<script type="text/javascript" src="http://.../jquery.js"></script>

Ответ 3

Благодарим вас за все ваши данные. В конечном итоге проблема была устранена до изображения, упомянутого в Thickbox.js.

Поскольку у него был URL http://(not https://), он вызывал сообщение об ошибке. Появившееся сообщение безопасности имеет "да" или "нет" для загрузки небезопасного контента, а нажатие "да" означает, что браузер вообще не загружает какой-либо jQuery.

Какая-то хитрость, поэтому я подумал, что отвечу сам себе в надежде, что это поможет кому-то другому с той же проблемой.

Ответ 4

Если клиент использовал HTTPS для запроса страницы, страница должна ссылаться на все носители (изображения, скрипты, таблицы стилей) через HTTPS.

Если клиент использовал HTTP для запроса страницы, вы должны отправить этот фрагмент HTML в свой ответ:

<head>
    <script
        type="text/javascript"
        src="http://my.domain.com/app/media/jquery.js"
    ></script>
</head>

Если клиент использовал HTTPS для запроса страницы, вы должны отправить этот фрагмент HTML в свой ответ:

<head>
    <script
        type="text/javascript"
        src="https://my.domain.com/app/media/jquery.js"
    ></script>
</head>

Разница в том, что когда клиент запрашивает страницу с HTTPS, сервер отправляет обратно ссылку на jquery script, который начинается с https://.

Ответ 5

Вы также можете увидеть подобное поведение, если используете jquery из code.jquery.com

например:

code.jquery.com не имеет действительного SSL.

Это может привести к неправильной работе других скриптов.

используйте вместо этого google cdn или загрузите jquery с вашего собственного сервера.

Надеюсь, что это поможет

Ответ 6

Я использовал IE 11 в качестве браузера.

Решение. Не используйте режим совместимости. Инструменты- > Параметры просмотра совместимости.

Симптомы:

Программа отлично работала в режиме http.

Браузер сообщил об ошибке в строке, утверждая, что ожидается идентификатор.

Браузер не позволит отлаживать файл библиотеки jquery. Файл не          отображаются в списке файлов для отладки, точки останова могут быть установлены на          файл при доступе через сообщение об ошибке в          консольный журнал, но точки останова были отключены.

Браузер явно показал, что файл был загружен успешно.

При использовании другого браузера ошибка не появляется.

Подсказка: я удалил тестовую программу до загрузки файла библиотеки jquery и одного div, который отображал фиксированный текст, поэтому не было никакого моего кода, чтобы пойти не так. Это значительно упростило список того, что может быть неправильным.