Javascript IE Redirection Loop(带有一些PHP)

Javascript IE Redirection Loop (with some PHP)

本文关键字:PHP IE Redirection Loop Javascript      更新时间:2023-09-26

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

在我看来

,你是对的,在IE上它不会发布"a"变量,但它应该发布表单。所以我敢打赌问题出在你的javascript和与IE的兼容性上。

我会尽量不发布表单,而是尝试检查它是否返回您认为它应该返回的值,带有alert(value);的 mby 或只是评论提交功能并检查输入是否获得值。

编辑:isset($_POST['a']) OR strlen($_POST['a'])>0 => isset($_POST['a'])与strlen($_POST['a'])>0为真,则isset($_POST['a'])也为真完全相同。