Междоменная загрузка контента с помощью JavaScript - PullRequest
0 голосов
/ 15 декабря 2011

Хорошо, вот проблема:

Удаленный сайт должен извлечь сложный контент HTML-страницы из другого домена.Решение iframe недостаточно хорошо из-за проблемы с определением высоты страницы, и междоменный ajax не разрешен в браузерах IE.Существует JSONP, но объем кода, который нужно обслуживать, слишком сложен, и мы также должны обслуживать некоторые функции.

Решение:

На стороне сервера мы динамически генерируем JavaScript, который содержит всесложное содержание HTML в строковой переменной.На удаленной стороне мы просто включаем вызов этого скрипта и помещаем его на страницу.Затем Div заполняется содержимым из обслуживаемой переменной.Он работает междоменный на ВСЕХ браузерах, и контент отображается отлично:)).

Вопрос:

Что не так с этим подходом?Почему нигде в Интернете нет упоминания о таком решении?Кажется, он идеально подходит для работы с любыми виджетами и подобным контентом, и теперь я боюсь, что в этом есть какая-то большая ошибка:)?

Пожалуйста, опровергните это:)

Ответы [ 3 ]

0 голосов
/ 15 декабря 2011

Как прокомментировал Пойнти, это, по сути, то же самое, что и JSONP. Имейте в виду, что большинство браузеров блокируют отправку файлов cookie на сторонний сайт.

0 голосов
/ 16 декабря 2011

Возможен кросс-домен, если сервер отправляет заголовок ответа access-control-allow-origin.См. Связанную статью для примера

http://www.leggetter.co.uk/2010/03/12/making-cross-domain-javascript-requests-using-xmlhttprequest-or-xdomainrequest.html

0 голосов
/ 15 декабря 2011

Нет проблем с этим подходом. Кросс-домен запрещен на стороне клиента из соображений безопасности, но на стороне сервера вы делаете, как хотите.

Разница в том, что вам нужно перезагрузить страницу, чтобы она запросила другой домен, а затем отправить ее на вашу страницу. Таким образом, вы можете сделать следующее:

1- Ваш javascript выполняет ajax-запрос к своему собственному домену. 2- На стороне сервера вы делаете междоменный запрос 3- Вы печатаете некоторые js / html для использования запрашивающей стороной

В этом случае у вас есть еще один запрос, чем выполнение его непосредственно на стороне клиента.

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