Php 发布到iframe,但是iframe将顶部窗口重定向到操作url而不是self?

Php 发布到iframe,但是iframe将顶部窗口重定向到操作url而不是self?,php,javascript,iframe,Php,Javascript,Iframe,我正在使用此处提到的表单post加载带有一些post数据的iframe: 一切正常。 但是,如果我的iframe url中有重定向(通过头或javascript代码段), 它不会重定向到iframe中的下一个url,而是重定向父窗口 例如:要发布到iframe: <form action="do_stuff.aspx" method="post" target="my_iframe"> <input type="submit" value="Do Stuff!" />

我正在使用此处提到的表单post加载带有一些post数据的iframe:

一切正常。 但是,如果我的iframe url中有重定向(通过头或javascript代码段), 它不会重定向到iframe中的下一个url,而是重定向父窗口

例如:要发布到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>

尚未提交。php:

<?php

// DO some stuff with post data 
// redirect to a success url
header("Location: THE_URL");

?>

问题在于_URL不会在iframe本身中打开,而是在完整的浏览器窗口中打开,这是一种不希望出现的行为。 我怎样才能解决这个问题?
firefox和chrome中的行为是相同的。

我认为这里可能发生的事情是,URL是一些受保护的页面,会破坏框架。也许是维基百科或其他。使用这样的代码:

if (top.location != location) {
    top.location.href = document.location.href ;
  }

我认为这里可能发生的事情是,URL是一个受保护的页面,它会破坏框架。也许是维基百科或其他。使用这样的代码:

if (top.location != location) {
    top.location.href = document.location.href ;
  }

这并不能直接回答您的问题,但是既然您已经在使用javascript,为什么不通过AJAX帖子提交表单呢?返回新URL的jQuery帖子可以工作:

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;
});

这并不能直接回答您的问题,但是既然您已经在使用javascript,为什么不通过AJAX帖子提交表单呢?返回新URL的jQuery帖子可以工作:

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;
});

您可以尝试使用php函数,而不是头重定向

<?php
$success_page = file_get_contents('http://www.example.com/');
echo $success_page;
?> 

您可以尝试使用php函数,而不是标头重定向

<?php
$success_page = file_get_contents('http://www.example.com/');
echo $success_page;
?> 


,不,我重定向给你的URL是我的。那么,可能是因为某种原因,目标不起作用,可能是页面中有另一个同名的对象。您可以尝试将名称修改为更独特的名称,并将id=“thename”添加到iframe中。所以iframe是按名称和id命名的,不,我重定向给你的URL是我的。那么可能是因为某种原因,目标不起作用,可能是页面中有另一个同名的对象。您可以尝试将名称修改为更独特的名称,并将id=“thename”添加到iframe中。因此iframe是按名称和id命名的。问题是您不能在文件\u get\u contents中使用来自用户的参数,否则人们会开始使用您的页面作为某种代理来进行攻击。问题是您不能在文件\u get\u contents中使用来自用户的参数,否则人们会开始使用你的页面作为某种代理来进行攻击。