Reputation: 625
I have to send some parameter to an IFRAME with POST method. I have read here Setting the HTTP request type of an <iframe> that it isn't possible. I'm thinking a solution in Javascript but I can't implement it so I can't test if it is a valid solution for this issue. I want to ask if someone has the same problem and if it is possible to solve and in positive case how to?
Upvotes: 43
Views: 100648
Reputation: 1535
Proposed solution works almost fine in my case, problem is that my form submitting returns an authorization cookie. Website that is rendering iframe is located on different domain that iframe website and this method returns me an error that I can't set the cookies. Is there a secure way to fix this?
Upvotes: 0
Reputation: 241
Just to give a concrete working example
<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>
Upvotes: 24
Reputation: 962
How about using the target attribute of the form to point to 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>
Upvotes: 32
Reputation: 4134
<form ... target="hidden_iframe">
...
</form>
<iframe name="hidden_iframe" ...></iframe>
Upvotes: 63