Opera не загрузит некоторые файлы JavaScript

У меня есть веб-страница, загружаемая в IFRAME, которая корректно работает в IE и Firefox, но не в Opera. Который я ненавижу, потому что я был пользователем Opera несколько лет. И я написал это.: -)

Проблема заключается в том, что Opera не загружает некоторые файлы JavaScript, содержащие эту страницу. Я подозреваю, что это связано с тем, что сама страница загружается через HTTPS и включенные файлы через HTTP с другого хоста и порта. Я полагаю, что Opera позволяет это, но вкладка Dragonfly Net даже не показывает попытку загрузить их.

Страница Rally "пользовательское приложение", и я не могу контролировать факт ее загрузки в IFRAME или что он загружается через HTTPS. Я также не могу контролировать тот факт, что включенные файлы загружаются с другого хоста или что хост поддерживает только HTTP. Так что я немного застрял в смешанном контенте.

Кроме всего прочего, элемент HEAD страницы содержит (обезвреживает бит):

<script src="http://www.example.com:81/common/jquery-1.4.2.js"></script>
<script src="http://www.example.com:81/common/jsTree/jquery.jstree.js"></script>
<script src="http://www.example.com:81/common/utils_jserror.js"></script>
<script src="http://www.example.com:81/common/utils_logging.js"></script>
<script src="http://www.example.com:81/common/utils_print_r.js"></script>
<script src="http://www.example.com:81/common/utils_rally_query.js"></script>
<script src="http://www.example.com:81/common/json2.js"></script>
<script src="/slm/js/slm.js"></script>
<script src="/slm/js-lib/dojo/rally-1.3.1/dojo/dojo.js.uncompressed.js"></script>
<script src="/slm/mashup/1.18/js/batch-toolkit.js"></script>
<script src="/slm/mashup/1.18/js/utilities.js"></script>

ВСЕ материала "/slm/..." загружается, а NONE из материала "www.example...".

Кто-нибудь понял, что я делаю неправильно?

Ответ 1

У Opera есть функция, называемая межсетевой защитой. В основном это накладывает дополнительные ограничения на то, что страницы из Интернета могут делать с вещами в вашей локальной сети.

Причина, по которой эта функция существует, - это появление так называемых эксплойтов "phish farm", где было обнаружено, что экраны на основе HTTP некоторых популярных домашних маршрутизаторов/модемов были настолько плохо защищены, что вредоносные веб-страницы могли переписываться настройки вашего маршрутизатора - например, чтобы настроить его на использование прокси и передать весь свой трафик через вредоносный сервер. Чтобы противостоять этому, Opera знает, что некоторые IP-адреса не используются в общедоступной сети (например, 127.0.0.1 или 192.168. *), И это не позволяет страницам с "общедоступного" сайта загружать файлы или отправлять запросы на "локальный" сайт.

Вы можете перенастроить это для каждого сайта. Проще всего, вероятно, добавить IFRAME на "общедоступный" сайт, загружая один из ресурсов с локального сервера. IFRAME отобразит страницу предупреждения о перекрестном доступе с некоторыми необязательными ссылками. Нажмите ссылку, чтобы всегда разрешать локальные запросы с этого сервера, а voila - ваше кросс-сетевое приложение теперь должно работать снова.

(Добавление IFRAME так же просто, как и источник просмотра, добавление <iframe src="http://local/whatever/included/file.js"></iframe>, сохранение и "Инструменты > Дополнительно > Перезагрузка из кеша" )