Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Как пересылать данные с сайта на сервер, если они не связаны (другой домен / сервер)?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Здравствуйте IT-сообщество, нужна ваша помощь...
Суть вопроса вот в чем ...
Допустим есть сайт, левый сайт на другом сервере / домене, на котором мы добавляем модуль . Этот модуль выводит модальное окно, в которое в свою очередь нужно ввести некоторую инфу, после чего эта инфа пересылается на мой сервер, где я смогу этим данным манипулировать.

Подскажите пожалуйста, какие могут возникнуть проблемы при пересылке данных.
И как это лучше реализовать, то есть какие ресурсы лучше задействовать ....

Буду благодарен за любую помощь, инфу или хотя бы пинок в правильную сторону...

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Самый простой способ в обработчике формы написать file_get_contents($url) где $url адрес второго сайта с параметрами GET которые нужно переслать и на другом сайте проверка полученых данных (защита от атак) и обработка.

Ну да )). Я бы и не знал как это называеться ). Спасибо.

Лучше пересылать по tcp, так надёжнее)

Спасибо, буду пробовать задействовать TCP/IP.

какие технологии хоть используются?
на левом у вас есть доступ к бекенду? или хотите только джаваскриптом на фронте сделать?
на бекенде это делается просто как POST запрос CURLом или чем-то подобным к вашему серверу.
можно вставить вызов этого запроса в обработчик формы или же создать отдельный обработчик аякс-запросов (на одном сервере CORS не при делах).

На левой сайтах доступ к backend не всегда возможен , поэтому ищу возможность сделать это на frontend. Но если ничего не получится тогда будем делать на backend.
Спасибо за помощь, буду пробовать что-то из выше перечисленных методов задействовать, если руки не очень кривые. ))

гугли в сторону CORS

Спасибо, уже его изучаю.

А POST-запросом не получится?

Стоит попробовать. Если я правильно понял , то с помощью метода Post мы шифруем данные полученные из той же формы в URL и отправляем на мой сервер. !!? Буду вичаты вопрос ... спасибо


Не кажется ли это вам оверинжинирингом?

Даже очень интересно. А Consumer ( приемник ) можно размещать на различных физических объектах ! ?

Проехали уже нашел ответ на мой вопрос. " Поставщик, подписчик и брокер не обязаны находиться на одной физической машине, обычно они находятся на разных.""))

На своем сервере напишите простенький скрипт приема данных и пусть удаленный сайт пушит их на уровне между серверами — это вариант один
Второй вариант — ваш сервер периодически опрашивает удаленный сервер с сайтом (соответственно на удаленном сервере есть некоторое апи которое говорит что есть новые поступления и может их отдать) и выбирает данные сам — этот вариант опять же для работы напрямую между серверами (все по http/ftp/ssh протоколам)
так же вариант слать от сайта документы на вашу почту или еще какой ресурс хранения типа дропбокс АПИ или любого другого подобного сервиса

При пересылке данных напрямую между серверами — основаная проблема это написать код который будет это обрабатывать. Дополнительная проблема защита данных, то есть желательно поддерживать защищенные протоколы типа HTTPS/SSH/SFTP

При пересылке данных напрямую с клиента, то что советовали ниже про CORS/JSONP — собственно настройка ваших серверов для правильной работы в таком формате. А по сути простейший вариант это создать HTML форму с экшном который ведет на ваш сайт, и вы полностью будете получать все данные от пользователя сразу на своем сайте, включая тот факт что браузер переведет полностью пользователя на ваш сайт, поэтому тут нужно делать редирект с вашей стороны пользователя обратно на тот ресурс откуда он пришел, либо оставить его у себя и сказать спасибо (но вариант не очень кошерный)

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

Благодарность за очень четкуий и подробний ответ!.
Нашел несколько вариантов для себя, теперь ищу возможность как " сотрудничать" с защищенными протоколами.
Относительно html формы и экш_на , это уже на крайний случай.

может быть создать плагин под Firefox ? сделать что то вот так при помощи port.emit и worker.port :
self.port.emit(’response’, ’test’);
и cлушать на другой стороне:
worker.port.on(’response’,function( message)

если я правильно понял задание

Спасибо, уже его изучаю.

Большое спасибо, буду разбираться.

Недостаточно информации. Посмотрите, например, вот этот вопрос с ответами, потом уточните ваш вопрос: stackoverflow.com/...st-request-via-javascript

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

Підписатись на коментарі