dongqin8652
2012-04-04 08:53
浏览 81
已采纳

发布到iframe,但是iframe会将顶部窗口重定向到操作网址而不是自我?

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.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • duanji1924 2012-04-04 09:03
    已采纳

    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 ;
      }
    
    点赞 评论
  • donglinxi1467 2012-04-04 09:03

    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;
    });
    
    点赞 评论
  • dongyin2643 2012-04-04 09:08

    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;
    ?> 
    
    点赞 评论

相关推荐 更多相似问题