php - Javascript IE 重定向循环(使用一些 PHP)

标签 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 应检测是否已发布某些内容,如果已发布则仅显示发布变量并退出(不加载脚本的其余部分)。

在 Chrome 和 Firefox 上这完美地工作。在 IE 上它无休止地重定向。所以看起来 IE 并没有发布变量,而只是一遍又一遍地重新加载自己。

最佳答案

在我看来你是对的,在 IE 上它没有发布“a”变量,但它应该发布表单。所以我敢打赌问题出在您的 javascript 和与 IE 的兼容性上。

我会尝试不发布表单,而是尝试检查它是否返回您认为应该返回的值,mby with alert(value); 或者只是评论提交函数并检查输入是否得到值(value)。

编辑:isset($_POST['a']) 或 strlen($_POST['a'])>0 => isset($_POST['a']) 完全相同的效果,如果 strlen($_POST['a'])>0 为真,则 isset($_POST['a']) 也为真。

关于php - Javascript IE 重定向循环(使用一些 PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10394330/

相关文章:

php - 使用后视组还是捕获组更好?

php - Laravel Eloquent Query Builder 链接影响原始基本查询

javascript - 错误 : Can't find npm module 'moment'

javascript - 用于将 wiki 文本转换为 HTML 的 Jquery/Javascript 解决方案,反之亦然?

javascript - 检测何时禁用样式

php - 从 2 个表中提取信息

javascript - 通过js在html中创建点击 Action

php - 复杂的 SQL 查询... 3 个表,需要最近 24 小时内最流行的使用时间戳

javascript - JQuery 跨域 GET 请求不起作用

javascript - GraphQL 如何做一个 JOIN 请求而不是许多顺序请求?