Frontend / Flash / JS: Получить GET'ом контент с другого домена

Metal Messiah
На сайте с 01.08.2010
Offline
163
909

Доброе утро.

Задача такая: нужно при открытии посетителем веб страницы домена А из браузера посетителя сделать GET запрос на домен Б, вытащить из текста кусочек, и далее его использовать в скриптах домена А. Именно из браузера.

Изначально все это реализовал на PHP, перед релизом оказалось что на localhost все пашет, а на хостинге - нет, пришлось функцию отключить. Причина - этот самый код зависит от IP клиента, потому запрашиваться с домена Б должен исключительно самим клиентом с его адреса. Классический для таких случаев хак с подстановкой X-Forwarded-For конкретно на этом сайте не канает.

Перекопал все по теме Javascript / XDomainRequest / XMLHttpRequest - не реально, запрос осуществляется (сниффер не врет) но результат выполнения (ответ) не получен, JS выдает ошибку. Такая вот хитрая защита от хакеров - вместо блокировки запроса блокируется передача ответа скрипту (насколько я понимаю, уже самого запроса достаточно во многих случаях, тем более POST)...

Есть мысль реализовать это на Flash - невидимый апплет, который будет получать из <param> адрес страницы, закачивать ее, парсить нужный кусок из кода и передавать его какой-то javascript функции. Такой метод сработает или во Flash сокеты тоже урезаны?

anonymous, думай что говоришь и не забывай подписать отзыв :)
Egi[s]
На сайте с 08.04.2007
Offline
244
#1

Так GET запрос можно делать просто curl'ом без каких-либо проблем, и отдавать его в js, к примеру ajax'ом.

ДП
На сайте с 23.11.2009
Offline
203
#2

Сайт Б вы контролируете? Если да - то, насколько я в курсе, можно там добавить несколько заголовков в ответ сервера. чтобы у Js и flash был к этому домену доступ.

Или даже через jsonp всё сделать.

Если доступа к сайту Б у вас нет - то вряд ли что-то получится.

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

Metal Messiah
На сайте с 01.08.2010
Offline
163
#3

CURLом не канает, описал проблему в 1м абзаце. Так и было сделано, но строка которую я должен забирать с сайта Б привязывается к REMOTE_ADDR с необратимым шифрованием, потому строка запрошенная с IP моего хостинга бесполезна в браузере клиента, имеющего отличный от него IP адрес.

Нет, сайт Б не я контролирую, потому

Access-Control-Allow-Origin: *

добавить не могу туда.

Если бы я его контролировал - задача бы решалась без междоменных запросов.

тоже что-то прописывать на домене Б - crossdimain.xml

А если я буду запрашивать не готовым HTTP запросом, а на голых сокетах?

Вроде бы там есть Socket class с методом connect и событием socketData, и куча многопользовательских игр Вконтакте, которые ломятся на сервера разработчиков игры.

R
На сайте с 20.02.2015
Offline
59
#4
Metal_Messiah:
А если я буду запрашивать не готовым HTTP запросом, а на голых сокетах?

тоже crossdomain.xml в корневом каталоге сервера нужен с правами попробуйте через WebSocket если конечно удаленный сервер поддерживает и разрешает кросс-доменные запросы.

Metal Messiah
На сайте с 01.08.2010
Offline
163
#5

Да, с Flash это феерический бред, кому нужна урезанная реализация функций в неполноценном языке программирования. А Java вообще не вариант - он сейчас мало у кого работает в браузерах.

За идею Websocket спасибо. Запрос CONNECT / GET уходит, сервер отвечает обычным HTML (не поддерживается, видимо) и этот ответ дальше никуда не идет - события onopen и onmessage не вызываются. Видимо, опять мимо.

Что-то мне подсказывает что этот функционал нужно выносить в десктопный клиент для постоянной аудитории сайта... В браузерах все слишком запрещено.

totamon
На сайте с 12.05.2007
Offline
437
#6
Metal_Messiah:
В браузерах все слишком запрещено.

ну как бы по делу...

Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
tommy-gung
На сайте с 22.11.2006
Offline
300
#7

curl + proxy

Здесь не могла быть ваша реклама
Metal Messiah
На сайте с 01.08.2010
Offline
163
#8
curl + proxy

Спасибо за старание, но 1, 2 и 4й пост Вы не читали.

Ладно, смотрю тему можно закрывать. Отговорили меня даже пытаться это делать на Flash.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий