2011-07-18 3 views
18

Мне нужно отправить некоторый параметр в IFRAME с методом POST. Я прочитал здесь Setting the HTTP request type of an <iframe> это невозможно. Я думаю о решении в Javascript, но я не могу его реализовать, поэтому я не могу проверить, является ли это допустимым решением для этой проблемы. Я хочу спросить, есть ли у кого-то такая же проблема, и если можно решить и в положительном случае, как?Как отправить параметр в iframe с запросом HTTP POST

+0

См http://stackoverflow.com/questions/168455/how-do-you-post-to-an-iframe –

ответ

29
<form ... target="hidden_iframe"> 
... 
</form> 

<iframe name="hidden_iframe" ...></iframe> 
+0

просто сделать form invisible и iframe тоже .. а затем выполните форму submit через js – walialu

16

Как насчет использования целевого атрибута формы для обозначения iFrame?

<form target="myIframe" action="http://localhost/post.php" method="post"> 
    <input type="hidden" value="someval" /> 
    <input type="submit"> 
</form> 

<iFrame src="" name="myIframe"></iFrame> 
+0

именно то, что я ответил 16 минут назад. -0- – walialu

+1

Только что заметил ваш. Вверх проголосовал за тебя. – KishoreK

+0

Этот способ решает проблему во всех браузерах, кроме Internet Explorer 7. У вас есть какие-либо предложения? – jRicca

8

Просто чтобы дать конкретный рабочий пример

<form id="loginForm" target="myFrame" action="https://localhost/j_spring_security_check" method="POST"> 
<input type="text" name="j_username" value="login" /> 
<input type="text" name="j_password" value="password" /> 
<input type="submit"> 
</form> 

<iframe name="myFrame" src="#"> 
    Your browser does not support inline frames. 
</iframe> 

// Hide the form and do the submit 
<script> 
$(document).ready(function(){ 
var loginform= document.getElementById("loginForm"); 
loginform.style.display = "none"; 
loginform.submit(); 
}); 
</script> 
Смежные вопросы