我有一个文件,当被调用时,应该重定向到另一个位置。 为了确保在标题之前没有发送任何内容,我调用一个文件,其唯一的内容是标题。我也尝试用其他方法重定向,但似乎没有任何工作。这是代码:
首先有一个ajax调用(成功)将一些数据发送到file1.php
$.ajax({
url: "file1.php",
type: "POST",
data: {id:10},
success: function(){
},
error: function (){
}
});
file1.php获取数据并调用bridge.php
<?
if (isset($_POST['id'])) {
$selected_id = $_POST['id'];
}
require('./code/bridge.php');
?>
文件bridge.php应该重定向到新的url。我试过以下(不是同时) 1。
<script>location.href='https://www.google.al/?gws_rd=cr,ssl&ei=l82QVqyAHIb6O5bJs6gK'</script>
2
<?
echo '<META HTTP-EQUIV="Refresh" Content="0; URL= https://www.google.al/?gws_rd=cr,ssl&ei=l82QVqyAHIb6O5bJs6gK">';
?>
3
<?
header("location: /edit_document");
?>
4
<?
ob_start();
header("location: /edit_document");
?>
我正在使用firebug来查看响应。它给出状态200(请求已完成)。 POST提供我发送的正确参数。响应提供我尝试重定向的页面。但重定向不会发生。
我将代码缩减到了这一点,以消除可能导致问题的所有事情。我知道你可能想知道为什么我会写一个似乎什么都不做的代码。但如果它不能像这样工作,我怀疑我可以通过许多其他电话来解决问题。此外,我打算使用标题进行重定向,但在绝望中尝试了其他选项。
答案 0 :(得分:1)
尝试制作AJAX请求以获取重定向网址,然后将其用于重定向:
$.ajax({
url: "file1.php",
type: "POST",
data: {id:10},
success: function(url){
window.location.href = url;
},
error: function (){
}
});
bridge.php:
<?php
print "https://www.google.al/?gws_rd=cr,ssl&ei=l82QVqyAHIb6O5bJs6gK";
?>
答案 1 :(得分:0)
使用Javascript或Jquery重定向... //行为与HTTP重定向一样 window.location.replace( “http://stackoverflow.com”);
//行为就像点击链接一样 window.location.href =“http://stackoverflow.com”;
答案 2 :(得分:0)
人们希望使用AJAX
,以便在提交表单时页面不会重定向。奇怪的是,你想要相反,但使用AJAX
。为什么不创建这样的简单表单,并在需要重定向时提交表单。
<form name="myForm" action="file1.php" method="post">
<input type="hidden" name="id" value="10" />
</form>
然后用这个替换你的ajax代码($.ajax({...});
)。
document.myForm.submit();
如果您的表单有id="myForm"
而不是name="myForm"
,则会提供相同的结果:
document.getElementById("myForm").submit();
如果你想从js动态修改id,你可以这样做(把代码放在submit()
之前):
document.myForm.id.value = 20;