Ajax方法不会在初始页面加载时触发

时间:2016-07-14 17:49:05

标签: javascript jquery ajax internet-explorer

注意:阅读此问题后,请参阅底部的编辑。

此问题仅发生在IE 11中,并且仅在最近的Windows更新后才开始发生。有5个更新,其中一个特定于IE,所以我卸载了那个。但是,问题仍然存在。在我考虑回滚其余更新之前,我的代码中是否存在某些内在错误?以下是文档就绪功能:

$('#leftmenu>li').click(function () {
    var clickedId = this.id;

    $.ajax({
        url: "Session/Index/",
        cache: false,
        success: function (result) {
            if (result.length > 0)
            {
                performListItemAction(clickedId);
            }
            else
            {
                window.location.href = 'Home/Index/'
            }
        }
    });
});

以下是performListItemAction方法(不在document.ready中的单独函数):

function performListItemAction(item)
{
    alert("clicked");

    $(".tabui").each(function ()
    {
        $(this).hide();
    });

    $(".listitem").each(function ()
    {
        $(this).css("background", "transparent");
    });

    $(document.getElementById(item)).css("background-color", "#C8C8C8");
    var targetId = $(document.getElementById(item)).data('target');
    var target = $(document.getElementById(targetId));
    target.show();

}

发生此问题时,单击的警报永远不会出现,这就是我总结ajax调用无效的方法。

其他一些说明: Firefox上没有发生此问题。 只有当我直接使用直接URL登录页面时才会发生这种情况。如果我通过应用程序的主屏幕登录,然后转到使用上述javascript的页面,则不会发生此问题。

谢谢。

编辑:我刚刚看到Firefox中也出现了同样的问题。它的频率要低得多。

1 个答案:

答案 0 :(得分:0)

经过反复试验,我认为我通过在每个网址的开头添加正斜杠来修复此问题,并将type: "POST",添加到a​​jax调用中。我不知道为什么它之前工作正常,但现在我的所有尝试都有效。