В наличии: браузер с js, сервер с php и cURL.
Цель: отправить данные на другой сайт (Яндекс.Деньги) с помощью php и показать страницу с его ответом в браузере.
Проблемы:
Сейчас:
Вопрос: Как отобразить ответ другого сервера заместо той страницы, которую сейчас показывает браузер?
Если использовать echo, то я получаю строку, которую в js могу показать где угодно в отображаемой странице. Но это не то, чего нужно добиться, ведь ответ другого сервера - html со своими натюрмортом. Должно получиться как будто я выполнил window.open с "_blank" (но она не поддерживает POST).
Часть кода:
$request_headers = array();
$request_headers[] = 'Content-Type:application/x-www-form-urlencoded';
$post_data = json_encode($values);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$html = curl_exec($ch);
curl_close($ch);
echo $html;
Исключите из вашей схемы AJAX и всё заработает. Если нужен POST-запрос используйте форму, отправить её можно и js'ом (form.submit()
).
Обратите внимание, что тело HTTP-ответа это ещё не весь "натюморт" (есть ещё заголовки, например куки).
А вообще у Яндекс.Денег есть API для интеграции (думаю, это как раз то что вы хотите сделать).
Как мне кажется, ответ на Ваш вопрос: https://stackoverflow.com/questions/2109205/open-window-in-javascript-with-html-inserted
var win = window.open("", "Title", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=200,top="+(screen.height-400)+",left="+(screen.width-840));
win.document.body.innerHTML = "HTML";
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытаюсь прочитать файл в котором написано:
сразу извинияюсь если вопрос поставлен не правильноСуть, сайт на хостинге работает нормально
Имеется цикл foreach который выводит таблицу в html и заполняет данными