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

Metal_Messiah
На сайте с 01.08.2010
Offline
129
895

Доброе утро.

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

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

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

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

anonymous, думай что говоришь и не забывай подписать отзыв :) Газета Сейчас (http://sejchas.pp.ua) - свежие новости на автомате
Egi[s]
На сайте с 08.04.2007
Offline
227
#1

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

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

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

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

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

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

Metal_Messiah
На сайте с 01.08.2010
Offline
129
#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
129
#5

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

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

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

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

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

Хостинг от 90р ( https://goo.gl/h1VRkY ) и ВПС от 161р ( https://goo.gl/vw9JH7 ) 14 дней бесплатный тест! Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno а тут ВПС за 1,25$ https://8fn.ru/vps1doll Монетизация любых сайтов PUSHами ( https://8fn.ru/push ) - лучшая цена клика и показа ;)
tommy-gung
На сайте с 22.11.2006
Offline
266
#7

curl + proxy

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

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

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

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