Решение межсайтового сценария совместного использования ресурсов - PullRequest
0 голосов
/ 03 апреля 2012

Я хочу загрузить внешний сайт в iframe.Но столкнулись с проблемами из-за политики Same-Origin-Same-domain.Поэтому для решения этой проблемы я использовал прокси-решение, в котором мы отправляем наш запрос в прокси-файл (я написал в java), а затем он запрашивает сервер и возвращает ответ.Это прекрасно работает.

Но при использовании этого метода все страницы загружаются в мой iframe некорректно.В настоящее время я работаю на localhost.Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке страницы возникают некоторые ошибки, например: - При загрузке www.google.com я получил следующие ошибки: -

GET http://localhost:8080/images/srpr/logo1w.png 404 (Not Found)

a.html:101 GET http://localhost:8080/extern_js/f/CgJlbhICaW4gACswRTgALCswWjgALCswDjgALCswFzgALCswPDgALCswUTgALCswCjgAmgICaGUsKzCYATgALCswFjgALCswGTgBLCswQTgALCswTTgALCswTjgALCswVDgALCswaTgALCswkAE4ACwrMJIBOAAsKzDVATgALCsw2AE4ACwrMBg4ACwrMCY4ACyAAlCQAnA/Q4V9Cbp7fuo.js 404 (Not Found)

Эти ошибки появляются, поскольку ввеб-страницу, которую я получаю (я думаю).Я прав?Если я тогда, как исправить эти вещи, чтобы такие ошибки могли быть исправлены.

После поиска в сети, я получил сайт, который делает это отлично.Пожалуйста, оформите заказ http://optimizely.com

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Проблема заключается в том, что если сайт использует относительные HREF (относительно домена / пути, с которого был загружен сайт), то ваше решение вызовет проблемы, поскольку вы изменили видимый домен / путь загрузки на что-то другое .

Одна возможность для вас - вставить тег в нужное место на странице (в разделе <head>), как это, чтобы правильно установить базовую ссылку:

<base href="http://www.google.com">

См. Эту статью для получения дополнительной информации: http://www.drostdesigns.com/base-href-tag/

Это решение не является надежным, хотя, если на сайте уже используется тег <base href="xxx">, это может вызвать проблемы, и если код javascript выполняет манипуляции на основе загруженного домена / пути, базовый href не исправит это. Важны ли эти проблемы или нет, зависит от конкретной страницы.

Если базовое решение href не работает, вам, возможно, придется проксировать все другие запросы ресурсов (изображения, ajax-вызовы и т. Д.), Чтобы все, что предназначалось для другого хоста, но запрашивалось у вас, было прокси соответствующим образом. Это было бы более надежным.

0 голосов
/ 03 апреля 2012

Нет способа, которым мы можем сказать только по описанию, которое вы опубликовали на данный момент, о проблеме ... но если ответ действительно такой, на который вы ссылались, то просто исправьте его - всякий раз, когда вы получаете относительную ссылку, сделайте его полностью квалифицированным, добавив домен из скрипта прокси.

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