Reputation: 43265
I am loading an iframe with some post data, by using a form post as mentioned here too :
Everything works fine. However,if my iframe url has a redirect in it ( through header or javascript snippet), it does not redirect to the next url within the iframe, but instead redirects the parent window.
eg: To post into iframe :
<form action="do_stuff.aspx" method="post" target="my_iframe">
<input type="submit" value="Do Stuff!" />
</form>
<!-- when the form is submitted, the server response will appear in this iframe -->
<iframe name="my_iframe" src="not_submitted_yet.php"></iframe>
not_submitted_yet.php:
<?php
// DO some stuff with post data
// redirect to a success url
header("Location: THE_URL");
?>
The problem is THE_URL does not open in the iframe itself, instead it opens in full browser window, which is an undesired behaviour. How can I fix this ? The behaviour is same in firefox and chrome.
Upvotes: 1
Views: 1952
Reputation: 481
You could try using the php function file_get_contents, instead of header redirecting.
<?php
$success_page = file_get_contents('http://www.example.com/');
echo $success_page;
?>
Upvotes: 0
Reputation: 12018
This doesn't directly answer your issue, but since you're already using javascript, why not submit the form via an AJAX post? A jQuery post that returns the new URL could work:
var submitData = $('#yourForm').serialize();
$.post('/your/url', submitData, function(data) {
// Probably put some validation on the value coming back in data.
window.location.href = data;
});
Upvotes: 0
Reputation: 1416
I think that what can happend here is that THE_URL is some protected page that break frames. Perhaps wikipedia or other. With a code like this one:
if (top.location != location) {
top.location.href = document.location.href ;
}
Upvotes: 1