我正在使用此处提到的表单帖子加载iframe和一些帖子数据:
一切正常。 但是,如果我的iframe网址中有重定向(通过标头或javascript代码段), 它不会重定向到iframe中的下一个网址,而是重定向父窗口。
例如:发布到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_URL没有在iframe中打开,而是在完整的浏览器窗口中打开,这是一种不受欢迎的行为。 我怎样才能解决这个问题 ? firefox和chrome中的行为相同。
答案 0 :(得分:1)
我认为这里可能发生的是,URL是一些破坏帧的受保护页面。也许是维基百科或其他。使用像这样的代码:
if (top.location != location) {
top.location.href = document.location.href ;
}
答案 1 :(得分:0)
这不能直接回答您的问题,但由于您已经在使用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;
});
答案 2 :(得分:0)
您可以尝试使用php函数file_get_contents,而不是标题重定向。
<?php
$success_page = file_get_contents('http://www.example.com/');
echo $success_page;
?>