在window.onload中提交无限循环

时间:2011-04-28 03:15:46

标签: javascript submit load-balancing onload-event

我有一个问题,偶尔当用户打开页面时,它看起来会闪烁并自行调整大小。看看日志似乎提交被多次调用,虽然我无法100%肯定,因为我无法在我自己的环境中重现这一点。

以下代码中是否有任何内容对您而言,或者我可以检查以查明问题的任何内容。

编辑:似乎.net页面一直在为页面提供服务,并且在onload事件上调用后续的submit(),但它永远不会返回到服务器。我们在一台机器上发生了这个错误,但在另一台机器上却没有。我想知道它是否可能是负载均衡器问题。

编辑:我们终于能够重现这个错误了。它与通过负载均衡器有关,但仍然不知道问题是什么。这个问题似乎有时也会发生,如果确实发生了,如果你关闭IE并重新打开它,它就有可能自行修复。

window.onload = function () {
        if (document.getElementById("hfPostBack").value != "true") {
            if (confirm('hfPostBackは:' + document.getElementById("hfPostBack").value + 'です.続行します')) {
                document.getElementById("hfPostBack").value = "true";
                document.forms[0].submit();
            }
        } else {
            alert('hfPostBackは:' + document.getElementById("hfPostBack").value + 'です');
        }
    }

2 个答案:

答案 0 :(得分:2)

document.forms[0].submit();

如果代码提交的表单具有表单所在的同一页面的操作,则会导致无限循环。 (负载提交-负载提交...)

答案 1 :(得分:0)

事实证明,通过将Web应用程序的IIS安全设置从匿名登录更改为Windows身份验证修复了问题。

仍然不知道为什么会发生这种情况,但似乎它与负载均衡器传递身份验证信息/假冒有关。