出于某种原因,以下原因导致IE中的重定向循环,但不会导致Chrome或Firefox。
<?php
if (isset($_POST['a']) OR strlen($_POST['a'])>0)
{
die($_POST['a']);
}
?>
<html>
<head>
<script type="text/javascript" src="fpjs2.js"></script>
</head>
<body>
<form name="fbif" id="fbif" action="checkcookie.php" method="POST">
<input type="hidden" name="a" value="" />
</form>
<script>
var ec = new MyObject();
ec.get("fbuid", function(value) {
document.fbif.a.value=value;
document.fbif.submit();
});
</script>
</body>
</html>
该脚本名为checkcookie.php,它检查是否存在cookie(这不是问题,不要继续讨论或尝试告诉我如何做到最好)然后将其发回给相同的脚本。顶部的PHP应检测是否已发布某些内容,如果是,则仅显示post变量并退出(不加载脚本的其余部分)。
在Chrome和Firefox上,这非常有效。在IE上它无限重定向。因此,IE似乎没有发布变量,而只是一遍又一遍地重新加载。
答案 0 :(得分:0)
在我看来你是对的,在IE上它不发布“a”变量,但它应该发布表单。所以我打赌问题在于你的javascript和与IE的兼容性。
我会尝试不发布表单,但是尝试检查它是否返回您认为应该返回的值,使用alert(value);
返回mby,或者只是注释提交函数并检查输入是否得到了值。
编辑:isset($_POST['a']) OR strlen($_POST['a'])>0
=&gt; isset($_POST['a'])
效果与strlen($ _ POST ['a'])&gt; 0完全相同,然后isset($ _ POST ['a'])也是如此。