2013-03-08 1 views
0

У меня проблемы с тем, чтобы делать то, что я объяснил в названии. Мне было интересно, может ли кто-нибудь помочь мне.Как отправить данные POST на внешнюю страницу во внешнем фрейме?

Так я объясню это снова более подробно:

У меня есть веб-страницу, содержащую форму, которая отправляет данные POST на внешний URL (не mysite.com но hissite.com, я надеюсь, что вы получили эту идею) Я использовал фрейм HTML для создания страницы на моем собственном веб-сайте (например, mysite.com/hissite), чтобы скрыть фактический URL-адрес другого веб-сайта. Проблема в том, что я не могу передать ввод формы на свой сайт, а через рамку внутри моего сайта.

Я в основном хочу следующее: 1. Пользователь входит в систему на моем веб-сайте. 2. Моя форма для входа в систему передает информацию для входа на другой сайт. 3. Пользователь вошел в систему, но вместо этого для перенаправления на другой веб-сайт он перенаправляется на фрейм внутри моего веб-сайта, который содержит другой веб-сайт.

Я не знаю, как объяснить это лучше, но я надеюсь, что кто-то поймет меня и поможет мне закончить мой проект.

Я должен упомянуть, что форма на моей веб-странице имеет ту же структуру (поля, имена полей и т. Д.) В качестве формы на другом веб-сайте. Поэтому я считал, что было бы очень легко передать вход через рамку. Ну, я понял, что это не так просто.

Вот форма:

<form action="/home/signin" method="post" name="loginForm" class="large-form" id="loginForm" > 
    <fieldset> 
    <label for="username">Username</label> 
    <input type="text" name="username" tabindex="1" id="username" value="" /> 
</fieldset> 
<fieldset> 
    <label for="password">Password</label> 
    <input type="password" name="password" tabindex="2" id="password" value="" /> 
    <input type="hidden" name="themeName" value=""/> 
</fieldset> 
<br/> 
<div id="login-button"> 
    <input type="submit" value="Log In" tabindex="3" /> 
</div> 

Заранее спасибо за вашу помощь.

ответ

-1

В этом случае вам необходимо использовать ajax-вызов, вы отправляете информацию, которую хотите на другую страницу, а затем можете обрабатывать данные так, как вы хотите, просто поместите вызов при отправке формы как javaScript, например:

$.ajax({ 
     url: siteUrl, 
     type: "post", 
     async:true, 
     dataType: 'json', 
     success: function(data){ 
your function 
     }, 
     error: function(e){ 
your error function 
     } 
    }); 
+0

Эта попытка будет заблокирована той же политикой происхождения. – Quentin

+0

Спасибо за ваш ответ. Я действительно ценю твою помощь. Но я сожалею, что у меня нет никаких знаний об аяксе. Я только начал изучать веб-языки. Я хорошо разбираюсь в PHP, HTM и CSS, но не более того. Если бы вы были более конкретными, это было бы потрясающе. Тем не менее, я думал сохранить ввод формы внутри $ _SESSION, а затем перенаправить пользователя на фрейм, который содержит веб-страницу, а затем использовать некоторый PHP для чтения данных в $ _SESSION и автоматически отправлять данные через POST в форму на оригинале сайт без какого-либо взаимодействия с человеком. –

+0

Считаете ли вы, что это возможно с помощью моей идеи? Я с нетерпением жду вашего ответа. Большое спасибо. –

0

Сведения, связанные с проксированием стороннего сайта, с вашим подходом, это невозможно.

Вы могли:

Использование кадров обычно

Это будет связано с установкой атрибута на форме target с именем фрейма, и action к URL третьей стороны.

Это будет работать до тех пор, пока сторонний сайт не будет осуществлять защиту от CSRF attacks в своей форме входа.

Этот подход не даст вам учетных данных, используемых для входа (хотя вы можете обнюхать их с помощью JavaScript).

прокси весь сайт

Это предполагает то же самое, что и выше, за исключением того, вы установите action в URL на вашем сайте. Затем вам нужно будет использовать код на стороне сервера, чтобы делать HTTP-запросы на сторонний сайт (поддерживая банку cookie для каждого пользователя на вашем сервере).Для каждого запроса вам необходимо проанализировать каждый ответ и изменить любые URL-адреса в HTML, CSS, JavaScript и т. Д., Чтобы они продолжали работать (поскольку относительные URI не сработают).


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

Смежные вопросы