Javascript IE重定向循环(带一些PHP)

时间:2012-05-01 06:25:13

标签: php javascript

出于某种原因,以下原因导致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似乎没有发布变量,而只是一遍又一遍地重新加载。

1 个答案:

答案 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'])也是如此。