1

I am loading an iframe with some post data, by using a form post as mentioned here too :

How do you post to an iframe?

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.

4

3 に答える 3

1

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 ;
  }
于 2012-04-04T09:03:09.410 に答える
0

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;
});
于 2012-04-04T09:03:18.850 に答える
0

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;
?> 
于 2012-04-04T09:08:19.207 に答える